add remove functionality and tests