update to use objects for the operations. some refactorings on the transport