added and delete functionality