[refactor] break memo into its own package
break memo into its own separate package. This should help us to avoid circular imports in follow on PRs.
break memo into its own separate package. This should help us to avoid circular imports in follow on PRs.