wip
wip
wip
wip
wip
wip
wip
wip
wip
Lazily evaluate and cache expensive hashes
Cache less expensive hashes
wip