refactoring + ObjectUtils TDD