New OOP samples + refactoring