architecturing into Modular OOP