wip
Lazily evaluate and cache expensive hashes
Cache less expensive hashes