basic framework of delete