add hash function, implement cache manager struct