nice refactoring progress