hw3 OOP