OOP part1/2 commit