added hash map and its tests