conducted refactoring