objects refactor