restructring, map.hh