further developing add and remove functions