proper destrcutopr