Implemented an OperationFactory to simplify creation and connection of Operations
Merge changes from hax branch