Add Object-oriented architecture