Quality Code + OOP

Initial upload