refactor of object tree