Implements memoize