abstraction of hash