moved duplicated code to abstract operator matcher