refactoring II