use generic map-switch
separate MapSwitch