fixed map implementation and cleaned up hashable and node