Object oriented version complete, ready for futher development