Generalize and adding delete as well as update