refactoring oop with different object structure