Refactoring add()