OOP class final Project