Bring back operator classes and adapt factory to create appropiate objects