evaluation exercise updated with OOP