operator patterns