make _isDisposed volatile just in case another thread tries to dispose