implemented insert, update and remove