implement object delete