Better memoization
Moving away from class vars