I'm not a huge fan of module level memoizations (prefer to use memcached in case of memory issues) but is probably fine