Refactored #add method