refactoring |---..| 60% complete