add hash map implementation