add hash function