refactoring proposition