refactoring AR OOP