More OOP; passes test 2 and 5 now