added move method. refactored remove method