Refactor Map to use the new MapKeyValue; MapValue with test