added delete implementation