add isDisposed
don't fire events if we are disposed