modify, delete implementation