new soft delete implementation