started refactoring to OOP
start refactoring to OOP