adds memoization
merge
temp disables save fn-ality