More work on an oop approach
Started cleanup