add delete and add functionality