May be a simple memoize?