moved to a private method
refactored remove method
refactored add method