surcharge op << map