progress refactoring