adds memoize!