clean up any listeners when the scope is destroyed