properly handle change types in operators