Shouldn't this just use mixin's destroy function and compose the extra logic?