[WIP] I at overhaul MK II

This implements BevapDin's suggestion of a wrapper class that allows callers to modify items on the map easily without exposing direct access to the underlying container.
This loop does not seem to change `i`, the condition `i == index` will never be fulfilled except when the first item is to be erased.