implementing interfaces to hash functions