refactoring in-progress