refactoring to objects
More tests green
more work