Simple (but internally ugly) memoization function
