Rewrote Module 1 with OOP