added add and remove functionality