refactoring add