start of objects-to-objects refactoring