preserve map/set type