moved destroy functions to be callable from a superclass destroy