RWO memoize
RWO functors