@implements core.Destroyable should be added