refactoring proposal