refactoring, testing, fixing