Replaces all-round Map with specific KeyMap

added ForwardIterator for cleaner iteration logic
added KeyMap tests