refactoring submission