covers only +, *, ==
covers only +, *, ==