public void Release() { if (Owner is null) { return; } DataRoot.Remove(this); Discard(); //discard myself and recursivly discard all my children if (this is RootModel) { DataRoot.Discard(); //kill off the dataChef } Owner = null; }