diff --git a/src/main/java/io/reactivex/rxjava3/core/Scheduler.java b/src/main/java/io/reactivex/rxjava3/core/Scheduler.java index a300cb02ce..80eda093c4 100644 --- a/src/main/java/io/reactivex/rxjava3/core/Scheduler.java +++ b/src/main/java/io/reactivex/rxjava3/core/Scheduler.java @@ -81,7 +81,7 @@ * underlying task-execution scheme supports stopping and restarting itself. *

* If the {@code Scheduler} is shut down or a {@code Worker} is disposed, the {@code schedule} methods - * should return the {@link io.reactivex.rxjava3.disposables.Disposables#disposed()} singleton instance indicating the shut down/disposed + * should return the {@link Disposable#disposed()} singleton instance indicating the shut down/disposed * state to the caller. Since the shutdown or dispose can happen from any thread, the {@code schedule} implementations * should make best effort to cancel tasks immediately after those tasks have been submitted to the * underlying task-execution scheme if the shutdown/dispose was detected after this submission. @@ -349,7 +349,7 @@ public S when(@NonNull Function * If the {@code Worker} is disposed, the {@code schedule} methods - * should return the {@link io.reactivex.rxjava3.disposables.Disposables#disposed()} singleton instance indicating the disposed + * should return the {@link Disposable#disposed()} singleton instance indicating the disposed * state to the caller. Since the {@link #dispose()} call can happen on any thread, the {@code schedule} implementations * should make best effort to cancel tasks immediately after those tasks have been submitted to the * underlying task-execution scheme if the dispose was detected after this submission. diff --git a/src/main/java/io/reactivex/rxjava3/disposables/Disposable.java b/src/main/java/io/reactivex/rxjava3/disposables/Disposable.java index 2fab6e83ed..0b77c28c84 100644 --- a/src/main/java/io/reactivex/rxjava3/disposables/Disposable.java +++ b/src/main/java/io/reactivex/rxjava3/disposables/Disposable.java @@ -12,6 +12,15 @@ */ package io.reactivex.rxjava3.disposables; +import io.reactivex.rxjava3.annotations.NonNull; +import io.reactivex.rxjava3.functions.Action; +import io.reactivex.rxjava3.internal.disposables.EmptyDisposable; +import io.reactivex.rxjava3.internal.functions.Functions; +import org.reactivestreams.Subscription; + +import java.util.Objects; +import java.util.concurrent.Future; + /** * Represents a disposable resource. */ @@ -26,4 +35,118 @@ public interface Disposable { * @return true if this resource has been disposed */ boolean isDisposed(); + + /** + * Construct a {@code Disposable} by wrapping a {@link Runnable} that is + * executed exactly once when the {@code Disposable} is disposed. + * @param run the Runnable to wrap + * @return the new Disposable instance + * @since 3.0.0 + */ + @NonNull + static Disposable fromRunnable(@NonNull Runnable run) { + Objects.requireNonNull(run, "run is null"); + return new RunnableDisposable(run); + } + + /** + * Construct a {@code Disposable} by wrapping a {@link Action} that is + * executed exactly once when the {@code Disposable} is disposed. + * @param run the Action to wrap + * @return the new Disposable instance + * @since 3.0.0 + */ + @NonNull + static Disposable fromAction(@NonNull Action run) { + Objects.requireNonNull(run, "run is null"); + return new ActionDisposable(run); + } + + /** + * Construct a {@code Disposable} by wrapping a {@link Future} that is + * cancelled exactly once when the {@code Disposable} is disposed. + *

+ * The {@code Future} is cancelled with {@code mayInterruptIfRunning == true}. + * @param future the Future to wrap + * @return the new Disposable instance + * @see #fromFuture(Future, boolean) + * @since 3.0.0 + */ + @NonNull + static Disposable fromFuture(@NonNull Future future) { + Objects.requireNonNull(future, "future is null"); + return fromFuture(future, true); + } + + /** + * Construct a {@code Disposable} by wrapping a {@link Future} that is + * cancelled exactly once when the {@code Disposable} is disposed. + * @param future the Future to wrap + * @param allowInterrupt if true, the future cancel happens via {@code Future.cancel(true)} + * @return the new Disposable instance + * @since 3.0.0 + */ + @NonNull + static Disposable fromFuture(@NonNull Future future, boolean allowInterrupt) { + Objects.requireNonNull(future, "future is null"); + return new FutureDisposable(future, allowInterrupt); + } + + /** + * Construct a {@code Disposable} by wrapping a {@link Subscription} that is + * cancelled exactly once when the {@code Disposable} is disposed. + * @param subscription the Runnable to wrap + * @return the new Disposable instance + * @since 3.0.0 + */ + @NonNull + static Disposable fromSubscription(@NonNull Subscription subscription) { + Objects.requireNonNull(subscription, "subscription is null"); + return new SubscriptionDisposable(subscription); + } + + /** + * Construct a {@code Disposable} by wrapping an {@link AutoCloseable} that is + * closed exactly once when the {@code Disposable} is disposed. + * @param autoCloseable the AutoCloseable to wrap + * @return the new Disposable instance + * @since 3.0.0 + */ + @NonNull + static Disposable fromAutoCloseable(@NonNull AutoCloseable autoCloseable) { + Objects.requireNonNull(autoCloseable, "autoCloseable is null"); + return new AutoCloseableDisposable(autoCloseable); + } + + /** + * Construct an {@link AutoCloseable} by wrapping a {@code Disposable} that is + * disposed when the returned {@code AutoCloseable} is closed. + * @param disposable the Disposable instance + * @return the new AutoCloseable instance + * @since 3.0.0 + */ + @NonNull + static AutoCloseable toAutoCloseable(@NonNull Disposable disposable) { + return disposable::dispose; + } + + /** + * Returns a new, non-disposed {@code Disposable} instance. + * @return a new, non-disposed {@code Disposable} instance + * @since 3.0.0 + */ + @NonNull + static Disposable empty() { + return fromRunnable(Functions.EMPTY_RUNNABLE); + } + + /** + * Returns a shared, disposed {@code Disposable} instance. + * @return a shared, disposed {@code Disposable} instance + * @since 3.0.0 + */ + @NonNull + static Disposable disposed() { + return EmptyDisposable.INSTANCE; + } } diff --git a/src/main/java/io/reactivex/rxjava3/disposables/Disposables.java b/src/main/java/io/reactivex/rxjava3/disposables/Disposables.java deleted file mode 100644 index 39b1b76b25..0000000000 --- a/src/main/java/io/reactivex/rxjava3/disposables/Disposables.java +++ /dev/null @@ -1,143 +0,0 @@ -/** - * Copyright (c) 2016-present, RxJava Contributors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in - * compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is - * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See - * the License for the specific language governing permissions and limitations under the License. - */ - -package io.reactivex.rxjava3.disposables; - -import java.util.Objects; -import java.util.concurrent.Future; - -import org.reactivestreams.Subscription; - -import io.reactivex.rxjava3.annotations.NonNull; -import io.reactivex.rxjava3.functions.Action; -import io.reactivex.rxjava3.internal.disposables.EmptyDisposable; -import io.reactivex.rxjava3.internal.functions.*; - -/** - * Utility class to help create disposables by wrapping - * other types. - * @since 2.0 - */ -public final class Disposables { - /** Utility class. */ - private Disposables() { - throw new IllegalStateException("No instances!"); - } - - /** - * Construct a {@code Disposable} by wrapping a {@link Runnable} that is - * executed exactly once when the {@code Disposable} is disposed. - * @param run the Runnable to wrap - * @return the new Disposable instance - */ - @NonNull - public static Disposable fromRunnable(@NonNull Runnable run) { - Objects.requireNonNull(run, "run is null"); - return new RunnableDisposable(run); - } - - /** - * Construct a {@code Disposable} by wrapping a {@link Action} that is - * executed exactly once when the {@code Disposable} is disposed. - * @param run the Action to wrap - * @return the new Disposable instance - */ - @NonNull - public static Disposable fromAction(@NonNull Action run) { - Objects.requireNonNull(run, "run is null"); - return new ActionDisposable(run); - } - - /** - * Construct a {@code Disposable} by wrapping a {@link Future} that is - * cancelled exactly once when the {@code Disposable} is disposed. - *

- * The {@code Future} is cancelled with {@code mayInterruptIfRunning == true}. - * @param future the Future to wrap - * @return the new Disposable instance - * @see #fromFuture(Future, boolean) - */ - @NonNull - public static Disposable fromFuture(@NonNull Future future) { - Objects.requireNonNull(future, "future is null"); - return fromFuture(future, true); - } - - /** - * Construct a {@code Disposable} by wrapping a {@link Future} that is - * cancelled exactly once when the {@code Disposable} is disposed. - * @param future the Future to wrap - * @param allowInterrupt if true, the future cancel happens via {@code Future.cancel(true)} - * @return the new Disposable instance - */ - @NonNull - public static Disposable fromFuture(@NonNull Future future, boolean allowInterrupt) { - Objects.requireNonNull(future, "future is null"); - return new FutureDisposable(future, allowInterrupt); - } - - /** - * Construct a {@code Disposable} by wrapping a {@link Subscription} that is - * cancelled exactly once when the {@code Disposable} is disposed. - * @param subscription the Runnable to wrap - * @return the new Disposable instance - */ - @NonNull - public static Disposable fromSubscription(@NonNull Subscription subscription) { - Objects.requireNonNull(subscription, "subscription is null"); - return new SubscriptionDisposable(subscription); - } - - /** - * Construct a {@code Disposable} by wrapping an {@link AutoCloseable} that is - * closed exactly once when the {@code Disposable} is disposed. - * @param autoCloseable the AutoCloseable to wrap - * @return the new Disposable instance - * @since 3.0.0 - */ - @NonNull - public static Disposable fromAutoCloseable(@NonNull AutoCloseable autoCloseable) { - Objects.requireNonNull(autoCloseable, "autoCloseable is null"); - return new AutoCloseableDisposable(autoCloseable); - } - - /** - * Construct an {@link AutoCloseable} by wrapping a {@code Disposable} that is - * disposed when the returned {@code AutoCloseable} is closed. - * @param disposable the Disposable instance - * @return the new AutoCloseable instance - * @since 3.0.0 - */ - @NonNull - public static AutoCloseable toAutoCloseable(@NonNull Disposable disposable) { - return disposable::dispose; - } - - /** - * Returns a new, non-disposed {@code Disposable} instance. - * @return a new, non-disposed {@code Disposable} instance - */ - @NonNull - public static Disposable empty() { - return fromRunnable(Functions.EMPTY_RUNNABLE); - } - - /** - * Returns a shared, disposed {@code Disposable} instance. - * @return a shared, disposed {@code Disposable} instance - */ - @NonNull - public static Disposable disposed() { - return EmptyDisposable.INSTANCE; - } -} diff --git a/src/main/java/io/reactivex/rxjava3/disposables/SerialDisposable.java b/src/main/java/io/reactivex/rxjava3/disposables/SerialDisposable.java index 187a94b1e5..d2c7ddee4b 100644 --- a/src/main/java/io/reactivex/rxjava3/disposables/SerialDisposable.java +++ b/src/main/java/io/reactivex/rxjava3/disposables/SerialDisposable.java @@ -71,7 +71,7 @@ public boolean replace(@Nullable Disposable next) { public Disposable get() { Disposable d = resource.get(); if (d == DisposableHelper.DISPOSED) { - return Disposables.disposed(); + return Disposable.disposed(); } return d; } diff --git a/src/main/java/io/reactivex/rxjava3/disposables/package-info.java b/src/main/java/io/reactivex/rxjava3/disposables/package-info.java index 21b276e132..29812d0ab7 100644 --- a/src/main/java/io/reactivex/rxjava3/disposables/package-info.java +++ b/src/main/java/io/reactivex/rxjava3/disposables/package-info.java @@ -17,6 +17,6 @@ /** * Default implementations for {@link io.reactivex.rxjava3.disposables.Disposable Disposable}-based resource management * ({@code Disposable} container types) and utility classes to construct - * {@link io.reactivex.rxjava3.disposables.Disposables Disposables} from callbacks and other types. + * {@link io.reactivex.rxjava3.disposables.Disposable Disposables} from callbacks and other types. */ package io.reactivex.rxjava3.disposables; diff --git a/src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromAction.java b/src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromAction.java index 5ce4d43547..4cd7fb479c 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromAction.java +++ b/src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromAction.java @@ -29,7 +29,7 @@ public CompletableFromAction(Action run) { @Override protected void subscribeActual(CompletableObserver observer) { - Disposable d = Disposables.empty(); + Disposable d = Disposable.empty(); observer.onSubscribe(d); try { run.run(); diff --git a/src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromCallable.java b/src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromCallable.java index ac2c94c921..57764950df 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromCallable.java +++ b/src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromCallable.java @@ -30,7 +30,7 @@ public CompletableFromCallable(Callable callable) { @Override protected void subscribeActual(CompletableObserver observer) { - Disposable d = Disposables.empty(); + Disposable d = Disposable.empty(); observer.onSubscribe(d); try { callable.call(); diff --git a/src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromRunnable.java b/src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromRunnable.java index 3dc275e0e1..e94d650310 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromRunnable.java +++ b/src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromRunnable.java @@ -28,7 +28,7 @@ public CompletableFromRunnable(Runnable runnable) { @Override protected void subscribeActual(CompletableObserver observer) { - Disposable d = Disposables.empty(); + Disposable d = Disposable.empty(); observer.onSubscribe(d); try { runnable.run(); diff --git a/src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromSupplier.java b/src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromSupplier.java index 5c6054306a..e3e29188a0 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromSupplier.java +++ b/src/main/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromSupplier.java @@ -33,7 +33,7 @@ public CompletableFromSupplier(Supplier supplier) { @Override protected void subscribeActual(CompletableObserver observer) { - Disposable d = Disposables.empty(); + Disposable d = Disposable.empty(); observer.onSubscribe(d); try { supplier.get(); diff --git a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeError.java b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeError.java index a850a27b6d..fc2f50066e 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeError.java +++ b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeError.java @@ -14,7 +14,7 @@ package io.reactivex.rxjava3.internal.operators.maybe; import io.reactivex.rxjava3.core.*; -import io.reactivex.rxjava3.disposables.Disposables; +import io.reactivex.rxjava3.disposables.Disposable; /** * Signals a constant Throwable. @@ -31,7 +31,7 @@ public MaybeError(Throwable error) { @Override protected void subscribeActual(MaybeObserver observer) { - observer.onSubscribe(Disposables.disposed()); + observer.onSubscribe(Disposable.disposed()); observer.onError(error); } } diff --git a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeErrorCallable.java b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeErrorCallable.java index f3b631ba36..20bb1e03a8 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeErrorCallable.java +++ b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeErrorCallable.java @@ -14,7 +14,7 @@ package io.reactivex.rxjava3.internal.operators.maybe; import io.reactivex.rxjava3.core.*; -import io.reactivex.rxjava3.disposables.Disposables; +import io.reactivex.rxjava3.disposables.Disposable; import io.reactivex.rxjava3.exceptions.Exceptions; import io.reactivex.rxjava3.functions.Supplier; import io.reactivex.rxjava3.internal.util.ExceptionHelper; @@ -34,7 +34,7 @@ public MaybeErrorCallable(Supplier errorSupplier) { @Override protected void subscribeActual(MaybeObserver observer) { - observer.onSubscribe(Disposables.disposed()); + observer.onSubscribe(Disposable.disposed()); Throwable ex; try { diff --git a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromAction.java b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromAction.java index 8c29290deb..5bdf86f904 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromAction.java +++ b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromAction.java @@ -34,7 +34,7 @@ public MaybeFromAction(Action action) { @Override protected void subscribeActual(MaybeObserver observer) { - Disposable d = Disposables.empty(); + Disposable d = Disposable.empty(); observer.onSubscribe(d); if (!d.isDisposed()) { diff --git a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromCallable.java b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromCallable.java index 4d218eb1ad..088f2e14f0 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromCallable.java +++ b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromCallable.java @@ -36,7 +36,7 @@ public MaybeFromCallable(Callable callable) { @Override protected void subscribeActual(MaybeObserver observer) { - Disposable d = Disposables.empty(); + Disposable d = Disposable.empty(); observer.onSubscribe(d); if (!d.isDisposed()) { diff --git a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromFuture.java b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromFuture.java index db6c87518e..5d4dbc0f0b 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromFuture.java +++ b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromFuture.java @@ -41,7 +41,7 @@ public MaybeFromFuture(Future future, long timeout, TimeUnit unit) @Override protected void subscribeActual(MaybeObserver observer) { - Disposable d = Disposables.empty(); + Disposable d = Disposable.empty(); observer.onSubscribe(d); if (!d.isDisposed()) { T v; diff --git a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromRunnable.java b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromRunnable.java index 672bd4edf5..2b7b658390 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromRunnable.java +++ b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromRunnable.java @@ -34,7 +34,7 @@ public MaybeFromRunnable(Runnable runnable) { @Override protected void subscribeActual(MaybeObserver observer) { - Disposable d = Disposables.empty(); + Disposable d = Disposable.empty(); observer.onSubscribe(d); if (!d.isDisposed()) { diff --git a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromSupplier.java b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromSupplier.java index 52aba416d9..38f0afdb62 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromSupplier.java +++ b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeFromSupplier.java @@ -35,7 +35,7 @@ public MaybeFromSupplier(Supplier supplier) { @Override protected void subscribeActual(MaybeObserver observer) { - Disposable d = Disposables.empty(); + Disposable d = Disposable.empty(); observer.onSubscribe(d); if (!d.isDisposed()) { diff --git a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeJust.java b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeJust.java index a2c70740a6..54dacb3c7d 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeJust.java +++ b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeJust.java @@ -14,7 +14,7 @@ package io.reactivex.rxjava3.internal.operators.maybe; import io.reactivex.rxjava3.core.*; -import io.reactivex.rxjava3.disposables.Disposables; +import io.reactivex.rxjava3.disposables.Disposable; import io.reactivex.rxjava3.internal.fuseable.ScalarSupplier; /** @@ -32,7 +32,7 @@ public MaybeJust(T value) { @Override protected void subscribeActual(MaybeObserver observer) { - observer.onSubscribe(Disposables.disposed()); + observer.onSubscribe(Disposable.disposed()); observer.onSuccess(value); } diff --git a/src/main/java/io/reactivex/rxjava3/internal/operators/single/SingleFromCallable.java b/src/main/java/io/reactivex/rxjava3/internal/operators/single/SingleFromCallable.java index 5300d968b0..a78dde3e36 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/operators/single/SingleFromCallable.java +++ b/src/main/java/io/reactivex/rxjava3/internal/operators/single/SingleFromCallable.java @@ -31,7 +31,7 @@ public SingleFromCallable(Callable callable) { @Override protected void subscribeActual(SingleObserver observer) { - Disposable d = Disposables.empty(); + Disposable d = Disposable.empty(); observer.onSubscribe(d); if (d.isDisposed()) { diff --git a/src/main/java/io/reactivex/rxjava3/internal/operators/single/SingleFromSupplier.java b/src/main/java/io/reactivex/rxjava3/internal/operators/single/SingleFromSupplier.java index 88dcd7dc94..e6fd32603f 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/operators/single/SingleFromSupplier.java +++ b/src/main/java/io/reactivex/rxjava3/internal/operators/single/SingleFromSupplier.java @@ -36,7 +36,7 @@ public SingleFromSupplier(Supplier supplier) { @Override protected void subscribeActual(SingleObserver observer) { - Disposable d = Disposables.empty(); + Disposable d = Disposable.empty(); observer.onSubscribe(d); if (d.isDisposed()) { diff --git a/src/main/java/io/reactivex/rxjava3/internal/operators/single/SingleJust.java b/src/main/java/io/reactivex/rxjava3/internal/operators/single/SingleJust.java index 8495f931db..4fd2387f96 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/operators/single/SingleJust.java +++ b/src/main/java/io/reactivex/rxjava3/internal/operators/single/SingleJust.java @@ -14,7 +14,7 @@ package io.reactivex.rxjava3.internal.operators.single; import io.reactivex.rxjava3.core.*; -import io.reactivex.rxjava3.disposables.Disposables; +import io.reactivex.rxjava3.disposables.Disposable; public final class SingleJust extends Single { @@ -26,7 +26,7 @@ public SingleJust(T value) { @Override protected void subscribeActual(SingleObserver observer) { - observer.onSubscribe(Disposables.disposed()); + observer.onSubscribe(Disposable.disposed()); observer.onSuccess(value); } diff --git a/src/main/java/io/reactivex/rxjava3/internal/schedulers/ImmediateThinScheduler.java b/src/main/java/io/reactivex/rxjava3/internal/schedulers/ImmediateThinScheduler.java index b1e47267b9..21fbbead83 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/schedulers/ImmediateThinScheduler.java +++ b/src/main/java/io/reactivex/rxjava3/internal/schedulers/ImmediateThinScheduler.java @@ -38,7 +38,7 @@ public final class ImmediateThinScheduler extends Scheduler { static final Disposable DISPOSED; static { - DISPOSED = Disposables.empty(); + DISPOSED = Disposable.empty(); DISPOSED.dispose(); } diff --git a/src/main/java/io/reactivex/rxjava3/internal/schedulers/SchedulerWhen.java b/src/main/java/io/reactivex/rxjava3/internal/schedulers/SchedulerWhen.java index 5a15e61223..ddff75388b 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/schedulers/SchedulerWhen.java +++ b/src/main/java/io/reactivex/rxjava3/internal/schedulers/SchedulerWhen.java @@ -1,12 +1,12 @@ /** * Copyright (c) 2016-present, RxJava Contributors. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -51,7 +51,7 @@ *

* Limit the amount concurrency two at a time without creating a new fix size * thread pool: - * + * *

  * Scheduler limitScheduler = Schedulers.computation().when(workers -> {
  *  // use merge max concurrent to limit the number of concurrent
@@ -69,7 +69,7 @@
  * {@link Flowable#zip(org.reactivestreams.Publisher, org.reactivestreams.Publisher, io.reactivex.rxjava3.functions.BiFunction)} where
  * subscribing to the first {@link Observable} could deadlock the subscription
  * to the second.
- * 
+ *
  * 
  * Scheduler limitScheduler = Schedulers.computation().when(workers -> {
  *  // use merge max concurrent to limit the number of concurrent
@@ -77,12 +77,12 @@
  *  return Completable.merge(Observable.merge(workers, 2));
  * });
  * 
- * + * * Slowing down the rate to no more than than 1 a second. This suffers from the * same problem as the one above I could find an {@link Observable} operator * that limits the rate without dropping the values (aka leaky bucket * algorithm). - * + * *
  * Scheduler slowScheduler = Schedulers.computation().when(workers -> {
  *  // use concatenate to make each worker happen one at a time.
@@ -145,7 +145,7 @@ public Worker createWorker() {
 
     static final Disposable SUBSCRIBED = new SubscribedDisposable();
 
-    static final Disposable DISPOSED = Disposables.disposed();
+    static final Disposable DISPOSED = Disposable.disposed();
 
     @SuppressWarnings("serial")
     abstract static class ScheduledAction extends AtomicReference implements Disposable {
diff --git a/src/main/java/io/reactivex/rxjava3/internal/schedulers/TrampolineScheduler.java b/src/main/java/io/reactivex/rxjava3/internal/schedulers/TrampolineScheduler.java
index 71c054258b..b8a164f9e1 100644
--- a/src/main/java/io/reactivex/rxjava3/internal/schedulers/TrampolineScheduler.java
+++ b/src/main/java/io/reactivex/rxjava3/internal/schedulers/TrampolineScheduler.java
@@ -120,7 +120,7 @@ Disposable enqueue(Runnable action, long execTime) {
                 return EmptyDisposable.INSTANCE;
             } else {
                 // queue wasn't empty, a parent is already processing so we just add to the end of the queue
-                return Disposables.fromRunnable(new AppendToQueueTask(timedRunnable));
+                return Disposable.fromRunnable(new AppendToQueueTask(timedRunnable));
             }
         }
 
diff --git a/src/main/java/io/reactivex/rxjava3/schedulers/TestScheduler.java b/src/main/java/io/reactivex/rxjava3/schedulers/TestScheduler.java
index 8b70760236..d9247acee2 100644
--- a/src/main/java/io/reactivex/rxjava3/schedulers/TestScheduler.java
+++ b/src/main/java/io/reactivex/rxjava3/schedulers/TestScheduler.java
@@ -166,7 +166,7 @@ public Disposable schedule(@NonNull Runnable run, long delayTime, @NonNull TimeU
             final TimedRunnable timedAction = new TimedRunnable(this, time + unit.toNanos(delayTime), run, counter++);
             queue.add(timedAction);
 
-            return Disposables.fromRunnable(new QueueRemove(timedAction));
+            return Disposable.fromRunnable(new QueueRemove(timedAction));
         }
 
         @NonNull
@@ -177,7 +177,7 @@ public Disposable schedule(@NonNull Runnable run) {
             }
             final TimedRunnable timedAction = new TimedRunnable(this, 0, run, counter++);
             queue.add(timedAction);
-            return Disposables.fromRunnable(new QueueRemove(timedAction));
+            return Disposable.fromRunnable(new QueueRemove(timedAction));
         }
 
         @Override
diff --git a/src/test/java/io/reactivex/rxjava3/completable/CompletableTest.java b/src/test/java/io/reactivex/rxjava3/completable/CompletableTest.java
index ebe1303bd2..e18d884f54 100644
--- a/src/test/java/io/reactivex/rxjava3/completable/CompletableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/completable/CompletableTest.java
@@ -4257,7 +4257,7 @@ public void andThenError() {
         Completable.unsafeCreate(new CompletableSource() {
                 @Override
                 public void subscribe(CompletableObserver co) {
-                    co.onSubscribe(Disposables.empty());
+                    co.onSubscribe(Disposable.empty());
                     co.onError(e);
                 }
             })
diff --git a/src/test/java/io/reactivex/rxjava3/disposables/CompositeDisposableTest.java b/src/test/java/io/reactivex/rxjava3/disposables/CompositeDisposableTest.java
index 2d6fec394b..b219e8f9d7 100644
--- a/src/test/java/io/reactivex/rxjava3/disposables/CompositeDisposableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/disposables/CompositeDisposableTest.java
@@ -33,7 +33,7 @@ public class CompositeDisposableTest extends RxJavaTest {
     public void success() {
         final AtomicInteger counter = new AtomicInteger();
         CompositeDisposable cd = new CompositeDisposable();
-        cd.add(Disposables.fromRunnable(new Runnable() {
+        cd.add(Disposable.fromRunnable(new Runnable() {
 
             @Override
             public void run() {
@@ -42,7 +42,7 @@ public void run() {
 
         }));
 
-        cd.add(Disposables.fromRunnable(new Runnable() {
+        cd.add(Disposable.fromRunnable(new Runnable() {
 
             @Override
             public void run() {
@@ -63,7 +63,7 @@ public void shouldUnsubscribeAll() throws InterruptedException {
         final int count = 10;
         final CountDownLatch start = new CountDownLatch(1);
         for (int i = 0; i < count; i++) {
-            cd.add(Disposables.fromRunnable(new Runnable() {
+            cd.add(Disposable.fromRunnable(new Runnable() {
 
                 @Override
                 public void run() {
@@ -101,7 +101,7 @@ public void run() {
     public void exception() {
         final AtomicInteger counter = new AtomicInteger();
         CompositeDisposable cd = new CompositeDisposable();
-        cd.add(Disposables.fromRunnable(new Runnable() {
+        cd.add(Disposable.fromRunnable(new Runnable() {
 
             @Override
             public void run() {
@@ -110,7 +110,7 @@ public void run() {
 
         }));
 
-        cd.add(Disposables.fromRunnable(new Runnable() {
+        cd.add(Disposable.fromRunnable(new Runnable() {
 
             @Override
             public void run() {
@@ -135,7 +135,7 @@ public void run() {
     public void compositeException() {
         final AtomicInteger counter = new AtomicInteger();
         CompositeDisposable cd = new CompositeDisposable();
-        cd.add(Disposables.fromRunnable(new Runnable() {
+        cd.add(Disposable.fromRunnable(new Runnable() {
 
             @Override
             public void run() {
@@ -144,7 +144,7 @@ public void run() {
 
         }));
 
-        cd.add(Disposables.fromRunnable(new Runnable() {
+        cd.add(Disposable.fromRunnable(new Runnable() {
 
             @Override
             public void run() {
@@ -152,7 +152,7 @@ public void run() {
             }
         }));
 
-        cd.add(Disposables.fromRunnable(new Runnable() {
+        cd.add(Disposable.fromRunnable(new Runnable() {
 
             @Override
             public void run() {
@@ -175,8 +175,8 @@ public void run() {
 
     @Test
     public void removeUnsubscribes() {
-        Disposable d1 = Disposables.empty();
-        Disposable d2 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
+        Disposable d2 = Disposable.empty();
 
         CompositeDisposable cd = new CompositeDisposable();
         cd.add(d1);
@@ -190,8 +190,8 @@ public void removeUnsubscribes() {
 
     @Test
     public void clear() {
-        Disposable d1 = Disposables.empty();
-        Disposable d2 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
+        Disposable d2 = Disposable.empty();
 
         CompositeDisposable cd = new CompositeDisposable();
         cd.add(d1);
@@ -206,7 +206,7 @@ public void clear() {
         assertTrue(d2.isDisposed());
         assertFalse(cd.isDisposed());
 
-        Disposable d3 = Disposables.empty();
+        Disposable d3 = Disposable.empty();
 
         cd.add(d3);
         cd.dispose();
@@ -219,7 +219,7 @@ public void clear() {
     public void unsubscribeIdempotence() {
         final AtomicInteger counter = new AtomicInteger();
         CompositeDisposable cd = new CompositeDisposable();
-        cd.add(Disposables.fromRunnable(new Runnable() {
+        cd.add(Disposable.fromRunnable(new Runnable() {
 
             @Override
             public void run() {
@@ -244,7 +244,7 @@ public void unsubscribeIdempotenceConcurrently()
 
         final int count = 10;
         final CountDownLatch start = new CountDownLatch(1);
-        cd.add(Disposables.fromRunnable(new Runnable() {
+        cd.add(Disposable.fromRunnable(new Runnable() {
 
             @Override
             public void run() {
@@ -301,8 +301,8 @@ public void addingNullDisposableIllegal() {
 
     @Test
     public void initializeVarargs() {
-        Disposable d1 = Disposables.empty();
-        Disposable d2 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
+        Disposable d2 = Disposable.empty();
 
         CompositeDisposable cd = new CompositeDisposable(d1, d2);
 
@@ -315,8 +315,8 @@ public void initializeVarargs() {
         assertTrue(d1.isDisposed());
         assertTrue(d2.isDisposed());
 
-        Disposable d3 = Disposables.empty();
-        Disposable d4 = Disposables.empty();
+        Disposable d3 = Disposable.empty();
+        Disposable d4 = Disposable.empty();
 
         cd = new CompositeDisposable(d3, d4);
 
@@ -330,8 +330,8 @@ public void initializeVarargs() {
 
     @Test
     public void initializeIterable() {
-        Disposable d1 = Disposables.empty();
-        Disposable d2 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
+        Disposable d2 = Disposable.empty();
 
         CompositeDisposable cd = new CompositeDisposable(Arrays.asList(d1, d2));
 
@@ -344,8 +344,8 @@ public void initializeIterable() {
         assertTrue(d1.isDisposed());
         assertTrue(d2.isDisposed());
 
-        Disposable d3 = Disposables.empty();
-        Disposable d4 = Disposables.empty();
+        Disposable d3 = Disposable.empty();
+        Disposable d4 = Disposable.empty();
 
         cd = new CompositeDisposable(Arrays.asList(d3, d4));
 
@@ -363,9 +363,9 @@ public void initializeIterable() {
     public void addAll() {
         CompositeDisposable cd = new CompositeDisposable();
 
-        Disposable d1 = Disposables.empty();
-        Disposable d2 = Disposables.empty();
-        Disposable d3 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
+        Disposable d2 = Disposable.empty();
+        Disposable d3 = Disposable.empty();
 
         cd.addAll(d1, d2);
         cd.addAll(d3);
@@ -379,8 +379,8 @@ public void addAll() {
         assertTrue(d1.isDisposed());
         assertTrue(d2.isDisposed());
 
-        d1 = Disposables.empty();
-        d2 = Disposables.empty();
+        d1 = Disposable.empty();
+        d2 = Disposable.empty();
 
         cd = new CompositeDisposable();
 
@@ -406,14 +406,14 @@ public void addAfterDisposed() {
         CompositeDisposable cd = new CompositeDisposable();
         cd.dispose();
 
-        Disposable d1 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
 
         assertFalse(cd.add(d1));
 
         assertTrue(d1.isDisposed());
 
-        d1 = Disposables.empty();
-        Disposable d2 = Disposables.empty();
+        d1 = Disposable.empty();
+        Disposable d2 = Disposable.empty();
 
         assertFalse(cd.addAll(d1, d2));
 
@@ -427,11 +427,11 @@ public void delete() {
 
         CompositeDisposable cd = new CompositeDisposable();
 
-        Disposable d1 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
 
         assertFalse(cd.delete(d1));
 
-        Disposable d2 = Disposables.empty();
+        Disposable d2 = Disposable.empty();
 
         cd.add(d2);
 
@@ -466,7 +466,7 @@ public void addRace() {
             Runnable run = new Runnable() {
                 @Override
                 public void run() {
-                    cd.add(Disposables.empty());
+                    cd.add(Disposable.empty());
                 }
             };
 
@@ -482,7 +482,7 @@ public void addAllRace() {
             Runnable run = new Runnable() {
                 @Override
                 public void run() {
-                    cd.addAll(Disposables.empty());
+                    cd.addAll(Disposable.empty());
                 }
             };
 
@@ -495,7 +495,7 @@ public void removeRace() {
         for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
             final CompositeDisposable cd = new CompositeDisposable();
 
-            final Disposable d1 = Disposables.empty();
+            final Disposable d1 = Disposable.empty();
 
             cd.add(d1);
 
@@ -515,7 +515,7 @@ public void deleteRace() {
         for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
             final CompositeDisposable cd = new CompositeDisposable();
 
-            final Disposable d1 = Disposables.empty();
+            final Disposable d1 = Disposable.empty();
 
             cd.add(d1);
 
@@ -535,7 +535,7 @@ public void clearRace() {
         for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
             final CompositeDisposable cd = new CompositeDisposable();
 
-            final Disposable d1 = Disposables.empty();
+            final Disposable d1 = Disposable.empty();
 
             cd.add(d1);
 
@@ -565,7 +565,7 @@ public void run() {
             Runnable run2 = new Runnable() {
                 @Override
                 public void run() {
-                    cd.add(Disposables.empty());
+                    cd.add(Disposable.empty());
                 }
             };
 
@@ -588,7 +588,7 @@ public void run() {
             Runnable run2 = new Runnable() {
                 @Override
                 public void run() {
-                    cd.addAll(Disposables.empty());
+                    cd.addAll(Disposable.empty());
                 }
             };
 
@@ -601,7 +601,7 @@ public void removeDisposeRace() {
         for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
             final CompositeDisposable cd = new CompositeDisposable();
 
-            final Disposable d1 = Disposables.empty();
+            final Disposable d1 = Disposable.empty();
 
             cd.add(d1);
 
@@ -628,7 +628,7 @@ public void deleteDisposeRace() {
         for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
             final CompositeDisposable cd = new CompositeDisposable();
 
-            final Disposable d1 = Disposables.empty();
+            final Disposable d1 = Disposable.empty();
 
             cd.add(d1);
 
@@ -655,7 +655,7 @@ public void clearDisposeRace() {
         for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
             final CompositeDisposable cd = new CompositeDisposable();
 
-            final Disposable d1 = Disposables.empty();
+            final Disposable d1 = Disposable.empty();
 
             cd.add(d1);
 
@@ -682,7 +682,7 @@ public void sizeDisposeRace() {
         for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
             final CompositeDisposable cd = new CompositeDisposable();
 
-            final Disposable d1 = Disposables.empty();
+            final Disposable d1 = Disposable.empty();
 
             cd.add(d1);
 
@@ -708,14 +708,14 @@ public void run() {
     public void disposeThrowsIAE() {
         CompositeDisposable cd = new CompositeDisposable();
 
-        cd.add(Disposables.fromAction(new Action() {
+        cd.add(Disposable.fromAction(new Action() {
             @Override
             public void run() throws Exception {
                 throw new IllegalArgumentException();
             }
         }));
 
-        Disposable d1 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
 
         cd.add(d1);
 
@@ -733,14 +733,14 @@ public void run() throws Exception {
     public void disposeThrowsError() {
         CompositeDisposable cd = new CompositeDisposable();
 
-        cd.add(Disposables.fromAction(new Action() {
+        cd.add(Disposable.fromAction(new Action() {
             @Override
             public void run() throws Exception {
                 throw new AssertionError();
             }
         }));
 
-        Disposable d1 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
 
         cd.add(d1);
 
@@ -758,14 +758,14 @@ public void run() throws Exception {
     public void disposeThrowsCheckedException() {
         CompositeDisposable cd = new CompositeDisposable();
 
-        cd.add(Disposables.fromAction(new Action() {
+        cd.add(Disposable.fromAction(new Action() {
             @Override
             public void run() throws Exception {
                 throw new IOException();
             }
         }));
 
-        Disposable d1 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
 
         cd.add(d1);
 
@@ -804,7 +804,7 @@ public boolean isDisposed() {
             }
         });
 
-        Disposable d1 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
 
         cd.add(d1);
 
diff --git a/src/test/java/io/reactivex/rxjava3/disposables/DisposablesTest.java b/src/test/java/io/reactivex/rxjava3/disposables/DisposableTest.java
similarity index 86%
rename from src/test/java/io/reactivex/rxjava3/disposables/DisposablesTest.java
rename to src/test/java/io/reactivex/rxjava3/disposables/DisposableTest.java
index 244ca873f0..69bd6a8cc2 100644
--- a/src/test/java/io/reactivex/rxjava3/disposables/DisposablesTest.java
+++ b/src/test/java/io/reactivex/rxjava3/disposables/DisposableTest.java
@@ -31,13 +31,13 @@
 import io.reactivex.rxjava3.plugins.RxJavaPlugins;
 import io.reactivex.rxjava3.testsupport.TestHelper;
 
-public class DisposablesTest extends RxJavaTest {
+public class DisposableTest extends RxJavaTest {
 
     @Test
     public void unsubscribeOnlyOnce() {
         Runnable run = mock(Runnable.class);
 
-        Disposable d = Disposables.fromRunnable(run);
+        Disposable d = Disposable.fromRunnable(run);
 
         assertTrue(d.toString(), d.toString().contains("RunnableDisposable(disposed=false, "));
 
@@ -52,7 +52,7 @@ public void unsubscribeOnlyOnce() {
 
     @Test
     public void empty() {
-        Disposable empty = Disposables.empty();
+        Disposable empty = Disposable.empty();
         assertFalse(empty.isDisposed());
         empty.dispose();
         assertTrue(empty.isDisposed());
@@ -60,20 +60,15 @@ public void empty() {
 
     @Test
     public void unsubscribed() {
-        Disposable disposed = Disposables.disposed();
+        Disposable disposed = Disposable.disposed();
         assertTrue(disposed.isDisposed());
     }
 
-    @Test
-    public void utilityClass() {
-        TestHelper.checkUtilityClass(Disposables.class);
-    }
-
     @Test
     public void fromAction() throws Throwable {
         Action action = mock(Action.class);
 
-        Disposable d = Disposables.fromAction(action);
+        Disposable d = Disposable.fromAction(action);
 
         assertTrue(d.toString(), d.toString().contains("ActionDisposable(disposed=false, "));
 
@@ -89,7 +84,7 @@ public void fromAction() throws Throwable {
     @Test
     public void fromActionThrows() {
         try {
-            Disposables.fromAction(new Action() {
+            Disposable.fromAction(new Action() {
                 @Override
                 public void run() throws Exception {
                     throw new IllegalArgumentException();
@@ -101,7 +96,7 @@ public void run() throws Exception {
         }
 
         try {
-            Disposables.fromAction(new Action() {
+            Disposable.fromAction(new Action() {
                 @Override
                 public void run() throws Exception {
                     throw new InternalError();
@@ -113,7 +108,7 @@ public void run() throws Exception {
         }
 
         try {
-            Disposables.fromAction(new Action() {
+            Disposable.fromAction(new Action() {
                 @Override
                 public void run() throws Exception {
                     throw new IOException();
@@ -132,7 +127,7 @@ public void run() throws Exception {
     @Test
     public void disposeRace() {
         for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
-            final Disposable d = Disposables.empty();
+            final Disposable d = Disposable.empty();
 
             Runnable r = new Runnable() {
                 @Override
@@ -147,14 +142,14 @@ public void run() {
 
     @Test(expected = NullPointerException.class)
     public void fromSubscriptionNull() {
-        Disposables.fromSubscription(null);
+        Disposable.fromSubscription(null);
     }
 
     @Test
     public void fromSubscription() {
         Subscription s = mock(Subscription.class);
 
-        Disposables.fromSubscription(s).dispose();
+        Disposable.fromSubscription(s).dispose();
 
         verify(s).cancel();
         verify(s, never()).request(anyInt());
@@ -166,11 +161,11 @@ public void setOnceTwice() {
         try {
 
             AtomicReference target = new AtomicReference();
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             DisposableHelper.setOnce(target, d);
 
-            Disposable d1 = Disposables.empty();
+            Disposable d1 = Disposable.empty();
 
             DisposableHelper.setOnce(target, d1);
 
@@ -188,7 +183,7 @@ public void fromAutoCloseable() {
 
         AutoCloseable ac = () -> counter.getAndIncrement();
 
-        Disposable d = Disposables.fromAutoCloseable(ac);
+        Disposable d = Disposable.fromAutoCloseable(ac);
 
         assertFalse(d.isDisposed());
         assertEquals(0, counter.get());
@@ -212,7 +207,7 @@ public void fromAutoCloseableThrows() throws Throwable {
         TestHelper.withErrorTracking(errors -> {
             AutoCloseable ac = () -> { throw new TestException(); };
 
-            Disposable d = Disposables.fromAutoCloseable(ac);
+            Disposable d = Disposable.fromAutoCloseable(ac);
 
             assertFalse(d.isDisposed());
 
@@ -236,9 +231,9 @@ public void fromAutoCloseableThrows() throws Throwable {
     public void toAutoCloseable() throws Exception {
         AtomicInteger counter = new AtomicInteger();
 
-        Disposable d = Disposables.fromAction(() -> counter.getAndIncrement());
+        Disposable d = Disposable.fromAction(() -> counter.getAndIncrement());
 
-        AutoCloseable ac = Disposables.toAutoCloseable(d);
+        AutoCloseable ac = Disposable.toAutoCloseable(d);
 
         assertFalse(d.isDisposed());
         assertEquals(0, counter.get());
diff --git a/src/test/java/io/reactivex/rxjava3/disposables/FutureDisposableTest.java b/src/test/java/io/reactivex/rxjava3/disposables/FutureDisposableTest.java
index 7cb13de5a8..a15f018c9b 100644
--- a/src/test/java/io/reactivex/rxjava3/disposables/FutureDisposableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/disposables/FutureDisposableTest.java
@@ -27,7 +27,7 @@ public class FutureDisposableTest extends RxJavaTest {
     @Test
     public void normal() {
         FutureTask ft = new FutureTask(Functions.EMPTY_RUNNABLE, null);
-        Disposable d = Disposables.fromFuture(ft);
+        Disposable d = Disposable.fromFuture(ft);
         assertFalse(d.isDisposed());
 
         d.dispose();
@@ -44,7 +44,7 @@ public void normal() {
     @Test
     public void interruptible() {
         FutureTask ft = new FutureTask(Functions.EMPTY_RUNNABLE, null);
-        Disposable d = Disposables.fromFuture(ft, true);
+        Disposable d = Disposable.fromFuture(ft, true);
         assertFalse(d.isDisposed());
 
         d.dispose();
diff --git a/src/test/java/io/reactivex/rxjava3/disposables/SequentialDisposableTest.java b/src/test/java/io/reactivex/rxjava3/disposables/SequentialDisposableTest.java
index 05f544bfa3..dc92b1f1d3 100644
--- a/src/test/java/io/reactivex/rxjava3/disposables/SequentialDisposableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/disposables/SequentialDisposableTest.java
@@ -56,7 +56,7 @@ public void notDisposedWhenReplaced() {
         final Disposable underlying = mock(Disposable.class);
         serialDisposable.update(underlying);
 
-        serialDisposable.replace(Disposables.empty());
+        serialDisposable.replace(Disposable.empty());
         serialDisposable.dispose();
 
         verify(underlying, never()).dispose();
diff --git a/src/test/java/io/reactivex/rxjava3/disposables/SerialDisposableTests.java b/src/test/java/io/reactivex/rxjava3/disposables/SerialDisposableTests.java
index 9ab98dae94..0205d6a85d 100644
--- a/src/test/java/io/reactivex/rxjava3/disposables/SerialDisposableTests.java
+++ b/src/test/java/io/reactivex/rxjava3/disposables/SerialDisposableTests.java
@@ -56,7 +56,7 @@ public void notDisposedWhenReplaced() {
         final Disposable underlying = mock(Disposable.class);
         serialDisposable.set(underlying);
 
-        serialDisposable.replace(Disposables.empty());
+        serialDisposable.replace(Disposable.empty());
         serialDisposable.dispose();
 
         verify(underlying, never()).dispose();
@@ -206,7 +206,7 @@ public void run() {
 
     @Test
     public void disposeState() {
-        Disposable empty = Disposables.empty();
+        Disposable empty = Disposable.empty();
         SerialDisposable d = new SerialDisposable(empty);
 
         assertFalse(d.isDisposed());
diff --git a/src/test/java/io/reactivex/rxjava3/internal/disposables/ArrayCompositeDisposableTest.java b/src/test/java/io/reactivex/rxjava3/internal/disposables/ArrayCompositeDisposableTest.java
index c5edd75477..8871cc4e50 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/disposables/ArrayCompositeDisposableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/disposables/ArrayCompositeDisposableTest.java
@@ -27,14 +27,14 @@ public class ArrayCompositeDisposableTest extends RxJavaTest {
     public void normal() {
         ArrayCompositeDisposable acd = new ArrayCompositeDisposable(2);
 
-        Disposable d1 = Disposables.empty();
-        Disposable d2 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
+        Disposable d2 = Disposable.empty();
 
         assertTrue(acd.setResource(0, d1));
         assertTrue(acd.setResource(1, d2));
 
-        Disposable d3 = Disposables.empty();
-        Disposable d4 = Disposables.empty();
+        Disposable d3 = Disposable.empty();
+        Disposable d4 = Disposable.empty();
 
         acd.replaceResource(0, d3);
         acd.replaceResource(1, d4);
@@ -58,8 +58,8 @@ public void normal() {
         assertTrue(d1.isDisposed());
         assertTrue(d2.isDisposed());
 
-        Disposable d5 = Disposables.empty();
-        Disposable d6 = Disposables.empty();
+        Disposable d5 = Disposable.empty();
+        Disposable d6 = Disposable.empty();
 
         assertFalse(acd.setResource(0, d5));
         acd.replaceResource(1, d6);
@@ -92,7 +92,7 @@ public void replaceRace() {
             Runnable r = new Runnable() {
                 @Override
                 public void run() {
-                    acd.replaceResource(0, Disposables.empty());
+                    acd.replaceResource(0, Disposable.empty());
                 }
             };
 
@@ -108,7 +108,7 @@ public void setRace() {
             Runnable r = new Runnable() {
                 @Override
                 public void run() {
-                    acd.setResource(0, Disposables.empty());
+                    acd.setResource(0, Disposable.empty());
                 }
             };
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/disposables/DisposableHelperTest.java b/src/test/java/io/reactivex/rxjava3/internal/disposables/DisposableHelperTest.java
index ea0c4ea89b..24c8dd784f 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/disposables/DisposableHelperTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/disposables/DisposableHelperTest.java
@@ -75,7 +75,7 @@ public void setReplace() {
             Runnable r = new Runnable() {
                 @Override
                 public void run() {
-                    DisposableHelper.replace(d, Disposables.empty());
+                    DisposableHelper.replace(d, Disposable.empty());
                 }
             };
 
@@ -91,7 +91,7 @@ public void setRace() {
             Runnable r = new Runnable() {
                 @Override
                 public void run() {
-                    DisposableHelper.set(d, Disposables.empty());
+                    DisposableHelper.set(d, Disposable.empty());
                 }
             };
 
@@ -111,7 +111,7 @@ public void setReplaceNull() {
 
     @Test
     public void dispose() {
-        Disposable u = Disposables.empty();
+        Disposable u = Disposable.empty();
         final AtomicReference d = new AtomicReference(u);
 
         DisposableHelper.dispose(d);
@@ -123,11 +123,11 @@ public void dispose() {
     public void trySet() {
         AtomicReference ref = new AtomicReference();
 
-        Disposable d1 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
 
         assertTrue(DisposableHelper.trySet(ref, d1));
 
-        Disposable d2 = Disposables.empty();
+        Disposable d2 = Disposable.empty();
 
         assertFalse(DisposableHelper.trySet(ref, d2));
 
@@ -137,7 +137,7 @@ public void trySet() {
 
         DisposableHelper.dispose(ref);
 
-        Disposable d3 = Disposables.empty();
+        Disposable d3 = Disposable.empty();
 
         assertFalse(DisposableHelper.trySet(ref, d3));
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/disposables/ListCompositeDisposableTest.java b/src/test/java/io/reactivex/rxjava3/internal/disposables/ListCompositeDisposableTest.java
index 280cb1c28e..0325d00500 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/disposables/ListCompositeDisposableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/disposables/ListCompositeDisposableTest.java
@@ -28,8 +28,8 @@ public class ListCompositeDisposableTest extends RxJavaTest {
 
     @Test
     public void constructorAndAddVarargs() {
-        Disposable d1 = Disposables.empty();
-        Disposable d2 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
+        Disposable d2 = Disposable.empty();
 
         ListCompositeDisposable lcd = new ListCompositeDisposable(d1, d2);
 
@@ -40,8 +40,8 @@ public void constructorAndAddVarargs() {
         assertTrue(d1.isDisposed());
         assertTrue(d2.isDisposed());
 
-        d1 = Disposables.empty();
-        d2 = Disposables.empty();
+        d1 = Disposable.empty();
+        d2 = Disposable.empty();
 
         lcd.addAll(d1, d2);
 
@@ -54,8 +54,8 @@ public void constructorAndAddVarargs() {
 
     @Test
     public void constructorIterable() {
-        Disposable d1 = Disposables.empty();
-        Disposable d2 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
+        Disposable d2 = Disposable.empty();
 
         ListCompositeDisposable lcd = new ListCompositeDisposable(Arrays.asList(d1, d2));
 
@@ -66,8 +66,8 @@ public void constructorIterable() {
         assertTrue(d1.isDisposed());
         assertTrue(d2.isDisposed());
 
-        d1 = Disposables.empty();
-        d2 = Disposables.empty();
+        d1 = Disposable.empty();
+        d2 = Disposable.empty();
 
         lcd.add(d1);
         lcd.addAll(d2);
@@ -103,11 +103,11 @@ public void afterDispose() {
         ListCompositeDisposable lcd = new ListCompositeDisposable();
         lcd.dispose();
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         assertFalse(lcd.add(d));
         assertTrue(d.isDisposed());
 
-        d = Disposables.empty();
+        d = Disposable.empty();
         assertFalse(lcd.addAll(d));
         assertTrue(d.isDisposed());
     }
@@ -152,7 +152,7 @@ public boolean isDisposed() {
     @Test
     public void remove() {
         ListCompositeDisposable lcd = new ListCompositeDisposable();
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         lcd.add(d);
 
@@ -201,7 +201,7 @@ public void addRace() {
             Runnable run = new Runnable() {
                 @Override
                 public void run() {
-                    cd.add(Disposables.empty());
+                    cd.add(Disposable.empty());
                 }
             };
 
@@ -217,7 +217,7 @@ public void addAllRace() {
             Runnable run = new Runnable() {
                 @Override
                 public void run() {
-                    cd.addAll(Disposables.empty());
+                    cd.addAll(Disposable.empty());
                 }
             };
 
@@ -230,7 +230,7 @@ public void removeRace() {
         for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
             final ListCompositeDisposable cd = new ListCompositeDisposable();
 
-            final Disposable d1 = Disposables.empty();
+            final Disposable d1 = Disposable.empty();
 
             cd.add(d1);
 
@@ -250,7 +250,7 @@ public void deleteRace() {
         for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
             final ListCompositeDisposable cd = new ListCompositeDisposable();
 
-            final Disposable d1 = Disposables.empty();
+            final Disposable d1 = Disposable.empty();
 
             cd.add(d1);
 
@@ -270,7 +270,7 @@ public void clearRace() {
         for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
             final ListCompositeDisposable cd = new ListCompositeDisposable();
 
-            final Disposable d1 = Disposables.empty();
+            final Disposable d1 = Disposable.empty();
 
             cd.add(d1);
 
@@ -300,7 +300,7 @@ public void run() {
             Runnable run2 = new Runnable() {
                 @Override
                 public void run() {
-                    cd.add(Disposables.empty());
+                    cd.add(Disposable.empty());
                 }
             };
 
@@ -323,7 +323,7 @@ public void run() {
             Runnable run2 = new Runnable() {
                 @Override
                 public void run() {
-                    cd.addAll(Disposables.empty());
+                    cd.addAll(Disposable.empty());
                 }
             };
 
@@ -336,7 +336,7 @@ public void removeDisposeRace() {
         for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
             final ListCompositeDisposable cd = new ListCompositeDisposable();
 
-            final Disposable d1 = Disposables.empty();
+            final Disposable d1 = Disposable.empty();
 
             cd.add(d1);
 
@@ -363,7 +363,7 @@ public void deleteDisposeRace() {
         for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
             final ListCompositeDisposable cd = new ListCompositeDisposable();
 
-            final Disposable d1 = Disposables.empty();
+            final Disposable d1 = Disposable.empty();
 
             cd.add(d1);
 
@@ -390,7 +390,7 @@ public void clearDisposeRace() {
         for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
             final ListCompositeDisposable cd = new ListCompositeDisposable();
 
-            final Disposable d1 = Disposables.empty();
+            final Disposable d1 = Disposable.empty();
 
             cd.add(d1);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/observers/BasicFuseableObserverTest.java b/src/test/java/io/reactivex/rxjava3/internal/observers/BasicFuseableObserverTest.java
index c62f59f831..a63283b938 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/observers/BasicFuseableObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/observers/BasicFuseableObserverTest.java
@@ -13,11 +13,11 @@
 
 package io.reactivex.rxjava3.internal.observers;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.annotations.Nullable;
 import io.reactivex.rxjava3.core.RxJavaTest;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.observers.TestObserver;
 import io.reactivex.rxjava3.testsupport.TestObserverEx;
 
@@ -48,7 +48,7 @@ protected boolean beforeDownstream() {
             }
         };
 
-        o.onSubscribe(Disposables.disposed());
+        o.onSubscribe(Disposable.disposed());
 
         to.assertNotSubscribed();
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/observers/BlockingFirstObserverTest.java b/src/test/java/io/reactivex/rxjava3/internal/observers/BlockingFirstObserverTest.java
index e871ec9639..845817379a 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/observers/BlockingFirstObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/observers/BlockingFirstObserverTest.java
@@ -26,7 +26,7 @@ public class BlockingFirstObserverTest extends RxJavaTest {
     @Test
     public void firstValueOnly() {
         BlockingFirstObserver bf = new BlockingFirstObserver();
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         bf.onSubscribe(d);
 
         bf.onNext(1);
diff --git a/src/test/java/io/reactivex/rxjava3/internal/observers/BlockingMultiObserverTest.java b/src/test/java/io/reactivex/rxjava3/internal/observers/BlockingMultiObserverTest.java
index dddbb1e962..399b5506e3 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/observers/BlockingMultiObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/observers/BlockingMultiObserverTest.java
@@ -30,7 +30,7 @@ public void dispose() {
         BlockingMultiObserver bmo = new BlockingMultiObserver();
         bmo.dispose();
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         bmo.onSubscribe(d);
     }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/observers/DeferredScalarObserverTest.java b/src/test/java/io/reactivex/rxjava3/internal/observers/DeferredScalarObserverTest.java
index 139d6fa0fc..f6ebd39d1f 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/observers/DeferredScalarObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/observers/DeferredScalarObserverTest.java
@@ -54,9 +54,9 @@ public void normal() {
 
             TakeFirst source = new TakeFirst(to);
 
-            source.onSubscribe(Disposables.empty());
+            source.onSubscribe(Disposable.empty());
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
             source.onSubscribe(d);
 
             assertTrue(d.isDisposed());
@@ -77,7 +77,7 @@ public void error() {
 
         TakeFirst source = new TakeFirst(to);
 
-        source.onSubscribe(Disposables.empty());
+        source.onSubscribe(Disposable.empty());
         source.onError(new TestException());
 
         to.assertFailure(TestException.class);
@@ -89,7 +89,7 @@ public void complete() {
 
         TakeFirst source = new TakeFirst(to);
 
-        source.onSubscribe(Disposables.empty());
+        source.onSubscribe(Disposable.empty());
         source.onComplete();
 
         to.assertResult();
@@ -101,7 +101,7 @@ public void dispose() {
 
         TakeFirst source = new TakeFirst(to);
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         source.onSubscribe(d);
 
@@ -122,7 +122,7 @@ public void fused() {
 
             TakeFirst source = new TakeFirst(to);
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             source.onSubscribe(d);
 
@@ -152,7 +152,7 @@ public void fusedReject() {
 
             TakeFirst source = new TakeFirst(to);
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             source.onSubscribe(d);
 
@@ -197,7 +197,7 @@ public void nonfusedTerminateMore() {
 
             TakeLast source = new TakeLast(to);
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             source.onSubscribe(d);
 
@@ -222,7 +222,7 @@ public void nonfusedError() {
 
             TakeLast source = new TakeLast(to);
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             source.onSubscribe(d);
 
@@ -247,7 +247,7 @@ public void fusedTerminateMore() {
 
             TakeLast source = new TakeLast(to);
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             source.onSubscribe(d);
 
@@ -272,7 +272,7 @@ public void fusedError() {
 
             TakeLast source = new TakeLast(to);
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             source.onSubscribe(d);
 
@@ -295,7 +295,7 @@ public void disposed() {
 
         TakeLast source = new TakeLast(to);
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         source.onSubscribe(d);
 
@@ -337,7 +337,7 @@ public void onComplete() {
             }
         });
 
-        source.onSubscribe(Disposables.empty());
+        source.onSubscribe(Disposable.empty());
         source.onNext(1);
         source.onComplete();
 
@@ -350,7 +350,7 @@ public void fusedEmpty() {
 
         TakeLast source = new TakeLast(to);
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         source.onSubscribe(d);
 
@@ -365,7 +365,7 @@ public void nonfusedEmpty() {
 
         TakeLast source = new TakeLast(to);
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         source.onSubscribe(d);
 
@@ -417,7 +417,7 @@ public void onComplete() {
             }
         });
 
-        source.onSubscribe(Disposables.empty());
+        source.onSubscribe(Disposable.empty());
         source.onNext(1);
         source.onComplete();
 
@@ -456,7 +456,7 @@ public void onComplete() {
             }
         });
 
-        source.onSubscribe(Disposables.empty());
+        source.onSubscribe(Disposable.empty());
         source.onNext(1);
         source.onComplete();
 
@@ -503,7 +503,7 @@ public void onComplete() {
             }
         });
 
-        source.onSubscribe(Disposables.empty());
+        source.onSubscribe(Disposable.empty());
         source.onNext(1);
 
         to.assertNoValues().assertNoErrors().assertComplete();
diff --git a/src/test/java/io/reactivex/rxjava3/internal/observers/DisposableLambdaObserverTest.java b/src/test/java/io/reactivex/rxjava3/internal/observers/DisposableLambdaObserverTest.java
index 0de5f0dcaa..cc84102c30 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/observers/DisposableLambdaObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/observers/DisposableLambdaObserverTest.java
@@ -17,10 +17,10 @@
 
 import java.util.List;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.RxJavaTest;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.Action;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -51,7 +51,7 @@ public void run() throws Exception {
                     }
             );
 
-            o.onSubscribe(Disposables.empty());
+            o.onSubscribe(Disposable.empty());
 
             assertFalse(o.isDisposed());
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/observers/FutureObserverTest.java b/src/test/java/io/reactivex/rxjava3/internal/observers/FutureObserverTest.java
index 1edecae92c..f9caa33808 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/observers/FutureObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/observers/FutureObserverTest.java
@@ -137,11 +137,11 @@ public void onSubscribe() throws Exception {
 
         try {
 
-            Disposable d1 = Disposables.empty();
+            Disposable d1 = Disposable.empty();
 
             fo.onSubscribe(d1);
 
-            Disposable d2 = Disposables.empty();
+            Disposable d2 = Disposable.empty();
 
             fo.onSubscribe(d2);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/observers/LambdaObserverTest.java b/src/test/java/io/reactivex/rxjava3/internal/observers/LambdaObserverTest.java
index 7cfd46352a..937e11441d 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/observers/LambdaObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/observers/LambdaObserverTest.java
@@ -202,9 +202,9 @@ public void badSourceOnSubscribe() {
             Observable source = new Observable() {
                 @Override
                 public void subscribeActual(Observer observer) {
-                    Disposable d1 = Disposables.empty();
+                    Disposable d1 = Disposable.empty();
                     observer.onSubscribe(d1);
-                    Disposable d2 = Disposables.empty();
+                    Disposable d2 = Disposable.empty();
                     observer.onSubscribe(d2);
 
                     assertFalse(d1.isDisposed());
@@ -256,7 +256,7 @@ public void badSourceEmitAfterDone() {
             Observable source = new Observable() {
                 @Override
                 public void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
 
                     observer.onNext(1);
                     observer.onComplete();
diff --git a/src/test/java/io/reactivex/rxjava3/internal/observers/QueueDrainObserverTest.java b/src/test/java/io/reactivex/rxjava3/internal/observers/QueueDrainObserverTest.java
index b8d82a3ed3..c8823563e0 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/observers/QueueDrainObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/observers/QueueDrainObserverTest.java
@@ -80,9 +80,9 @@ public void accept(Observer a, Integer v) {
     @Test
     public void unorderedSlowPath() {
         TestObserver to = new TestObserver();
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         QueueDrainObserver qd = createUnordered(to, d);
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         qd.enter();
         qd.onNext(1);
@@ -93,9 +93,9 @@ public void unorderedSlowPath() {
     @Test
     public void orderedSlowPath() {
         TestObserver to = new TestObserver();
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         QueueDrainObserver qd = createOrdered(to, d);
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         qd.enter();
         qd.onNext(1);
@@ -106,9 +106,9 @@ public void orderedSlowPath() {
     @Test
     public void orderedSlowPathNonEmptyQueue() {
         TestObserver to = new TestObserver();
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         QueueDrainObserver qd = createOrdered(to, d);
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         qd.queue.offer(0);
         qd.onNext(1);
@@ -121,9 +121,9 @@ public void unorderedOnNextRace() {
         for (int i = 0; i < TestHelper.RACE_LONG_LOOPS; i++) {
 
             TestObserver to = new TestObserver();
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
             final QueueDrainObserver qd = createUnordered(to, d);
-            to.onSubscribe(Disposables.empty());
+            to.onSubscribe(Disposable.empty());
 
             Runnable r1 = new Runnable() {
                 @Override
@@ -143,9 +143,9 @@ public void orderedOnNextRace() {
         for (int i = 0; i < TestHelper.RACE_LONG_LOOPS; i++) {
 
             TestObserver to = new TestObserver();
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
             final QueueDrainObserver qd = createOrdered(to, d);
-            to.onSubscribe(Disposables.empty());
+            to.onSubscribe(Disposable.empty());
 
             Runnable r1 = new Runnable() {
                 @Override
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableAmbTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableAmbTest.java
index 643ae8a880..8192f338da 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableAmbTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableAmbTest.java
@@ -173,12 +173,12 @@ public void ambArrayOrder() {
     @Test
     public void ambRace() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         CompositeDisposable cd = new CompositeDisposable();
         AtomicBoolean once = new AtomicBoolean();
         Amb a = new Amb(once, cd, to);
-        a.onSubscribe(Disposables.empty());
+        a.onSubscribe(Disposable.empty());
 
         a.onComplete();
         a.onComplete();
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableConcatTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableConcatTest.java
index 19cff53d90..3180f0b71a 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableConcatTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableConcatTest.java
@@ -18,11 +18,11 @@
 import java.util.*;
 import java.util.concurrent.CountDownLatch;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 import org.reactivestreams.*;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.*;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.subscriptions.BooleanSubscription;
@@ -172,7 +172,7 @@ public void arrayFirstCancels() {
         Completable.concatArray(new Completable() {
             @Override
             protected void subscribeActual(CompletableObserver observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 to.dispose();
                 observer.onComplete();
             }
@@ -196,7 +196,7 @@ public void iterableFirstCancels() {
         Completable.concat(Arrays.asList(new Completable() {
             @Override
             protected void subscribeActual(CompletableObserver observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 to.dispose();
                 observer.onComplete();
             }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableCreateTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableCreateTest.java
index 8b7993609f..2ee2550872 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableCreateTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableCreateTest.java
@@ -38,7 +38,7 @@ public void nullArgument() {
     public void basic() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable d = Disposables.empty();
+            final Disposable d = Disposable.empty();
 
             Completable.create(new CompletableOnSubscribe() {
                 @Override
@@ -65,8 +65,8 @@ public void subscribe(CompletableEmitter e) throws Exception {
     public void basicWithCancellable() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable d1 = Disposables.empty();
-            final Disposable d2 = Disposables.empty();
+            final Disposable d1 = Disposable.empty();
+            final Disposable d2 = Disposable.empty();
 
             Completable.create(new CompletableOnSubscribe() {
                 @Override
@@ -100,7 +100,7 @@ public void cancel() throws Exception {
     public void basicWithError() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable d = Disposables.empty();
+            final Disposable d = Disposable.empty();
 
             Completable.create(new CompletableOnSubscribe() {
                 @Override
@@ -162,7 +162,7 @@ public void onErrorThrows() {
         Completable.create(new CompletableOnSubscribe() {
             @Override
             public void subscribe(CompletableEmitter e) throws Exception {
-                Disposable d = Disposables.empty();
+                Disposable d = Disposable.empty();
                 e.setDisposable(d);
 
                 try {
@@ -199,7 +199,7 @@ public void onCompleteThrows() {
         Completable.create(new CompletableOnSubscribe() {
             @Override
             public void subscribe(CompletableEmitter e) throws Exception {
-                Disposable d = Disposables.empty();
+                Disposable d = Disposable.empty();
                 e.setDisposable(d);
 
                 try {
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableDetachTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableDetachTest.java
index 5225359554..b2dfd16c32 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableDetachTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableDetachTest.java
@@ -64,7 +64,7 @@ public void onComplete() {
 
     @Test
     public void cancelDetaches() throws Exception {
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         final WeakReference wr = new WeakReference(d);
 
         TestObserver to = new Completable() {
@@ -90,7 +90,7 @@ protected void subscribeActual(CompletableObserver observer) {
 
     @Test
     public void completeDetaches() throws Exception {
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         final WeakReference wr = new WeakReference(d);
 
         TestObserver to = new Completable() {
@@ -116,7 +116,7 @@ protected void subscribeActual(CompletableObserver observer) {
 
     @Test
     public void errorDetaches() throws Exception {
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         final WeakReference wr = new WeakReference(d);
 
         TestObserver to = new Completable() {
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableDoOnTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableDoOnTest.java
index fea4bcb84e..c2bf494837 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableDoOnTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableDoOnTest.java
@@ -82,7 +82,7 @@ public void run() throws Exception {
     public void onSubscribeCrash() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable bs = Disposables.empty();
+            final Disposable bs = Disposable.empty();
 
             new Completable() {
                 @Override
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableMergeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableMergeTest.java
index 6a7c9aa70d..c1cc06f3c6 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableMergeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableMergeTest.java
@@ -48,7 +48,7 @@ public void cancelAfterFirst() {
         Completable.mergeArray(new Completable() {
             @Override
             protected void subscribeActual(CompletableObserver observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onComplete();
                 to.dispose();
             }
@@ -65,7 +65,7 @@ public void cancelAfterFirstDelayError() {
         Completable.mergeArrayDelayError(new Completable() {
             @Override
             protected void subscribeActual(CompletableObserver observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onComplete();
                 to.dispose();
             }
@@ -84,7 +84,7 @@ public void onErrorAfterComplete() {
             Completable.mergeArrayDelayError(Completable.complete(), new Completable() {
                 @Override
                 protected void subscribeActual(CompletableObserver observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onComplete();
                     co[0] = observer;
                 }
@@ -410,7 +410,7 @@ public void innerDoubleOnError() {
             Completable.mergeDelayError(Flowable.just(new Completable() {
                 @Override
                 protected void subscribeActual(CompletableObserver observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException("First"));
                     o[0] = observer;
                 }
@@ -433,7 +433,7 @@ public void innerIsDisposed() {
         Completable.mergeDelayError(Flowable.just(new Completable() {
             @Override
             protected void subscribeActual(CompletableObserver observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 assertFalse(((Disposable)observer).isDisposed());
 
                 to.dispose();
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableTakeUntilTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableTakeUntilTest.java
index b8b48fe9c0..1b4bb17263 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableTakeUntilTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableTakeUntilTest.java
@@ -18,10 +18,10 @@
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.observers.TestObserver;
 import io.reactivex.rxjava3.plugins.RxJavaPlugins;
@@ -145,7 +145,7 @@ public void mainErrorLate() {
             new Completable() {
                 @Override
                 protected void subscribeActual(CompletableObserver observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException());
                 }
             }.takeUntil(Completable.complete())
@@ -167,7 +167,7 @@ public void mainCompleteLate() {
             new Completable() {
                 @Override
                 protected void subscribeActual(CompletableObserver observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onComplete();
                 }
             }.takeUntil(Completable.complete())
@@ -192,7 +192,7 @@ public void otherErrorLate() {
             .takeUntil(new Completable() {
                 @Override
                 protected void subscribeActual(CompletableObserver observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     ref.set(observer);
                 }
             })
@@ -219,7 +219,7 @@ public void otherCompleteLate() {
             .takeUntil(new Completable() {
                 @Override
                 protected void subscribeActual(CompletableObserver observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     ref.set(observer);
                 }
             })
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableTimeoutTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableTimeoutTest.java
index 9261562220..0b176d808e 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableTimeoutTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableTimeoutTest.java
@@ -156,7 +156,7 @@ public void run() {
     @Test
     public void ambRace() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         CompositeDisposable cd = new CompositeDisposable();
         AtomicBoolean once = new AtomicBoolean();
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableToObservableTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableToObservableTest.java
index d94a4ba097..4d5b99cb90 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableToObservableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableToObservableTest.java
@@ -43,7 +43,7 @@ public void fusion() throws Exception {
 
         ObserverCompletableObserver co = new ObserverCompletableObserver(to);
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         co.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableUnsafeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableUnsafeTest.java
index 7cad5802b6..4581a8944d 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableUnsafeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableUnsafeTest.java
@@ -17,10 +17,10 @@
 
 import java.util.List;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.plugins.RxJavaPlugins;
 import io.reactivex.rxjava3.testsupport.TestHelper;
 
@@ -42,7 +42,7 @@ public void wrapCustomCompletable() {
         Completable.wrap(new CompletableSource() {
             @Override
             public void subscribe(CompletableObserver observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onComplete();
             }
         })
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableUsingTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableUsingTest.java
index ca4634c7f5..6a7ddd564b 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableUsingTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableUsingTest.java
@@ -411,11 +411,11 @@ public CompletableSource apply(Object v) throws Exception {
                     return Completable.wrap(new CompletableSource() {
                         @Override
                         public void subscribe(CompletableObserver observer) {
-                            Disposable d1 = Disposables.empty();
+                            Disposable d1 = Disposable.empty();
 
                             observer.onSubscribe(d1);
 
-                            Disposable d2 = Disposables.empty();
+                            Disposable d2 = Disposable.empty();
 
                             observer.onSubscribe(d2);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableConcatTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableConcatTest.java
index eddc091c77..a0b14ead5a 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableConcatTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableConcatTest.java
@@ -163,7 +163,7 @@ public void nestedAsyncConcat() throws InterruptedException {
 
             @Override
             public void subscribe(final Subscriber> subscriber) {
-                final Disposable d = Disposables.empty();
+                final Disposable d = Disposable.empty();
                 subscriber.onSubscribe(new Subscription() {
                     @Override
                     public void request(long n) {
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableCreateTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableCreateTest.java
index 023f5b5a25..e6470fe6c9 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableCreateTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableCreateTest.java
@@ -48,7 +48,7 @@ public void subscribe(FlowableEmitter s) throws Exception { }
     public void basic() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable d = Disposables.empty();
+            final Disposable d = Disposable.empty();
 
             Flowable.create(new FlowableOnSubscribe() {
                 @Override
@@ -81,8 +81,8 @@ public void subscribe(FlowableEmitter e) throws Exception {
     public void basicWithCancellable() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable d1 = Disposables.empty();
-            final Disposable d2 = Disposables.empty();
+            final Disposable d1 = Disposable.empty();
+            final Disposable d2 = Disposable.empty();
 
             Flowable.create(new FlowableOnSubscribe() {
                 @Override
@@ -122,7 +122,7 @@ public void cancel() throws Exception {
     public void basicWithError() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable d = Disposables.empty();
+            final Disposable d = Disposable.empty();
 
             Flowable.create(new FlowableOnSubscribe() {
                 @Override
@@ -153,7 +153,7 @@ public void subscribe(FlowableEmitter e) throws Exception {
     public void basicSerialized() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable d = Disposables.empty();
+            final Disposable d = Disposable.empty();
 
             Flowable.create(new FlowableOnSubscribe() {
                 @Override
@@ -188,7 +188,7 @@ public void subscribe(FlowableEmitter e) throws Exception {
     public void basicWithErrorSerialized() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable d = Disposables.empty();
+            final Disposable d = Disposable.empty();
 
             Flowable.create(new FlowableOnSubscribe() {
                 @Override
@@ -778,7 +778,7 @@ public void onErrorCrash() {
             Flowable.create(new FlowableOnSubscribe() {
                 @Override
                 public void subscribe(FlowableEmitter e) throws Exception {
-                    Disposable d = Disposables.empty();
+                    Disposable d = Disposable.empty();
                     e.setDisposable(d);
                     try {
                         e.onError(new IOException());
@@ -816,7 +816,7 @@ public void onCompleteCrash() {
             Flowable.create(new FlowableOnSubscribe() {
                 @Override
                 public void subscribe(FlowableEmitter e) throws Exception {
-                    Disposable d = Disposables.empty();
+                    Disposable d = Disposable.empty();
                     e.setDisposable(d);
                     try {
                         e.onComplete();
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableDoOnUnsubscribeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableDoOnUnsubscribeTest.java
index 340b3f22d9..0a37faae1e 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableDoOnUnsubscribeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableDoOnUnsubscribeTest.java
@@ -72,7 +72,7 @@ public void run() {
 
         for (int i = 0; i < subCount; ++i) {
             TestSubscriber subscriber = new TestSubscriber();
-            subscriptions.add(Disposables.fromSubscription(subscriber));
+            subscriptions.add(Disposable.fromSubscription(subscriber));
             longs.subscribe(subscriber);
             subscribers.add(subscriber);
         }
@@ -134,7 +134,7 @@ public void run() {
         for (int i = 0; i < subCount; ++i) {
             TestSubscriber subscriber = new TestSubscriber();
             longs.subscribe(subscriber);
-            subscriptions.add(Disposables.fromSubscription(subscriber));
+            subscriptions.add(Disposable.fromSubscription(subscriber));
             subscribers.add(subscriber);
         }
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableElementAtTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableElementAtTest.java
index f4701665cb..596e7b3867 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableElementAtTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableElementAtTest.java
@@ -17,13 +17,13 @@
 
 import java.util.*;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 import org.reactivestreams.*;
 
 import io.reactivex.rxjava3.core.*;
 import io.reactivex.rxjava3.core.Observable;
 import io.reactivex.rxjava3.core.Observer;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.subscriptions.BooleanSubscription;
@@ -344,7 +344,7 @@ public void badSourceObservable() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
 
                     observer.onNext(1);
                     observer.onNext(2);
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableFlatMapCompletableTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableFlatMapCompletableTest.java
index 592756d85e..1c87d6f3b3 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableFlatMapCompletableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableFlatMapCompletableTest.java
@@ -455,7 +455,7 @@ public CompletableSource apply(Integer v) throws Exception {
                 return new Completable() {
                     @Override
                     protected void subscribeActual(CompletableObserver observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
 
                         assertFalse(((Disposable)observer).isDisposed());
 
@@ -494,7 +494,7 @@ public CompletableSource apply(Integer v) throws Exception {
                 return new Completable() {
                     @Override
                     protected void subscribeActual(CompletableObserver observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
 
                         assertFalse(((Disposable)observer).isDisposed());
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableFlatMapMaybeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableFlatMapMaybeTest.java
index 332d906952..d425ce8372 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableFlatMapMaybeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableFlatMapMaybeTest.java
@@ -442,7 +442,7 @@ public void badInnerSource() {
             .flatMapMaybe(Functions.justFunction(new Maybe() {
                 @Override
                 protected void subscribeActual(MaybeObserver observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException("First"));
                     observer.onError(new TestException("Second"));
                 }
@@ -531,7 +531,7 @@ public MaybeSource apply(Integer v) throws Exception {
                 return new Maybe() {
                     @Override
                     protected void subscribeActual(MaybeObserver observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
 
                         assertFalse(((Disposable)observer).isDisposed());
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableFlatMapSingleTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableFlatMapSingleTest.java
index e207dc57a1..2d3699e8e2 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableFlatMapSingleTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableFlatMapSingleTest.java
@@ -361,7 +361,7 @@ public void badInnerSource() {
             .flatMapSingle(Functions.justFunction(new Single() {
                 @Override
                 protected void subscribeActual(SingleObserver observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException("First"));
                     observer.onError(new TestException("Second"));
                 }
@@ -416,7 +416,7 @@ public SingleSource apply(Integer v) throws Exception {
                 return new Single() {
                     @Override
                     protected void subscribeActual(SingleObserver observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
 
                         assertFalse(((Disposable)observer).isDisposed());
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableObserveOnTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableObserveOnTest.java
index 624ecee97a..994926b237 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableObserveOnTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableObserveOnTest.java
@@ -1806,7 +1806,7 @@ public boolean isDisposed() {
             public Disposable schedule(Runnable run, long delay,
                     TimeUnit unit) {
                 run.run();
-                return Disposables.empty();
+                return Disposable.empty();
             }
         }
     }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableRefCountTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableRefCountTest.java
index c70429b381..975740cfe3 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableRefCountTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableRefCountTest.java
@@ -805,7 +805,7 @@ static final class BadFlowableSubscribe extends ConnectableFlowable {
         @Override
         public void connect(Consumer connection) {
             try {
-                connection.accept(Disposables.empty());
+                connection.accept(Disposable.empty());
             } catch (Throwable ex) {
                 throw ExceptionHelper.wrapOrThrow(ex);
             }
@@ -827,7 +827,7 @@ static final class BadFlowableDispose extends ConnectableFlowable {
         @Override
         public void connect(Consumer connection) {
             try {
-                connection.accept(Disposables.empty());
+                connection.accept(Disposable.empty());
             } catch (Throwable ex) {
                 throw ExceptionHelper.wrapOrThrow(ex);
             }
@@ -922,7 +922,7 @@ static final class BadFlowableSubscribe2 extends ConnectableFlowable {
         @Override
         public void connect(Consumer connection) {
             try {
-                connection.accept(Disposables.empty());
+                connection.accept(Disposable.empty());
             } catch (Throwable ex) {
                 throw ExceptionHelper.wrapOrThrow(ex);
             }
@@ -969,7 +969,7 @@ static final class BadFlowableConnect2 extends ConnectableFlowable {
         @Override
         public void connect(Consumer connection) {
             try {
-                connection.accept(Disposables.empty());
+                connection.accept(Disposable.empty());
             } catch (Throwable ex) {
                 throw ExceptionHelper.wrapOrThrow(ex);
             }
@@ -1214,7 +1214,7 @@ static final class BadFlowableDoubleOnX extends ConnectableFlowable
         @Override
         public void connect(Consumer connection) {
             try {
-                connection.accept(Disposables.empty());
+                connection.accept(Disposable.empty());
             } catch (Throwable ex) {
                 throw ExceptionHelper.wrapOrThrow(ex);
             }
@@ -1392,7 +1392,7 @@ public void timeoutResetsSource() {
         FlowableRefCount o = (FlowableRefCount)tcf.refCount();
 
         RefConnection rc = new RefConnection(o);
-        rc.set(Disposables.empty());
+        rc.set(Disposable.empty());
         o.connection = rc;
 
         o.timeout(rc);
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableUsingTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableUsingTest.java
index 0422a24db2..37d9195175 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableUsingTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableUsingTest.java
@@ -210,7 +210,7 @@ private void performTestUsingWithFlowableFactoryError(boolean disposeEagerly) {
         Supplier resourceFactory = new Supplier() {
             @Override
             public Disposable get() {
-                return Disposables.fromRunnable(unsubscribe);
+                return Disposable.fromRunnable(unsubscribe);
             }
         };
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/NotificationLiteTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/NotificationLiteTest.java
index 1df91fbe4d..3a5ff0dc57 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/NotificationLiteTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/flowable/NotificationLiteTest.java
@@ -15,10 +15,10 @@
 
 import static org.junit.Assert.*;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.RxJavaTest;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.internal.subscriptions.BooleanSubscription;
 import io.reactivex.rxjava3.internal.util.NotificationLite;
@@ -80,7 +80,7 @@ public void completeNotification() {
 
     @Test
     public void disposableNotification() {
-        Object o = NotificationLite.disposable(Disposables.empty());
+        Object o = NotificationLite.disposable(Disposable.empty());
 
         assertEquals("NotificationLite.Disposable[RunnableDisposable(disposed=false, EmptyRunnable)]", o.toString());
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeAmbTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeAmbTest.java
index 36addaab95..50b76aa424 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeAmbTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeAmbTest.java
@@ -19,10 +19,10 @@
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -124,7 +124,7 @@ public void disposeNoFurtherSignals() {
             @Override
             protected void subscribeActual(
                     MaybeObserver observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onSuccess(1);
                 observer.onSuccess(2);
                 observer.onComplete();
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeCallbackObserverTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeCallbackObserverTest.java
index 4419d5e8c3..9ebf939b52 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeCallbackObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeCallbackObserverTest.java
@@ -33,7 +33,7 @@ public class MaybeCallbackObserverTest extends RxJavaTest {
     public void dispose() {
         MaybeCallbackObserver mo = new MaybeCallbackObserver(Functions.emptyConsumer(), Functions.emptyConsumer(), Functions.EMPTY_ACTION);
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         mo.onSubscribe(d);
 
@@ -60,7 +60,7 @@ public void accept(Object v) throws Exception {
                     Functions.emptyConsumer(),
                     Functions.EMPTY_ACTION);
 
-            mo.onSubscribe(Disposables.empty());
+            mo.onSubscribe(Disposable.empty());
 
             mo.onSuccess(1);
 
@@ -84,7 +84,7 @@ public void accept(Object v) throws Exception {
                     },
                     Functions.EMPTY_ACTION);
 
-            mo.onSubscribe(Disposables.empty());
+            mo.onSubscribe(Disposable.empty());
 
             mo.onError(new TestException("Outer"));
 
@@ -113,7 +113,7 @@ public void run() throws Exception {
                         }
                     });
 
-            mo.onSubscribe(Disposables.empty());
+            mo.onSubscribe(Disposable.empty());
 
             mo.onComplete();
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeConcatArrayTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeConcatArrayTest.java
index 68ccd8434b..3fa9235fbd 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeConcatArrayTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeConcatArrayTest.java
@@ -18,10 +18,10 @@
 import java.io.IOException;
 import java.util.List;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.plugins.RxJavaPlugins;
 import io.reactivex.rxjava3.subscribers.TestSubscriber;
@@ -142,7 +142,7 @@ public void errorAfterTermination() {
             new Maybe() {
                 @Override
                 protected void subscribeActual(MaybeObserver observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onSuccess(2);
                     o[0] = observer;
                 }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeCreateTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeCreateTest.java
index b9ffc12ee8..b0857c432f 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeCreateTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeCreateTest.java
@@ -79,7 +79,7 @@ public void onSuccessThrows() {
         Maybe.create(new MaybeOnSubscribe() {
             @Override
             public void subscribe(MaybeEmitter e) throws Exception {
-                Disposable d = Disposables.empty();
+                Disposable d = Disposable.empty();
                 e.setDisposable(d);
 
                 try {
@@ -121,7 +121,7 @@ public void onErrorThrows() {
         Maybe.create(new MaybeOnSubscribe() {
             @Override
             public void subscribe(MaybeEmitter e) throws Exception {
-                Disposable d = Disposables.empty();
+                Disposable d = Disposable.empty();
                 e.setDisposable(d);
 
                 try {
@@ -163,7 +163,7 @@ public void onCompleteThrows() {
         Maybe.create(new MaybeOnSubscribe() {
             @Override
             public void subscribe(MaybeEmitter e) throws Exception {
-                Disposable d = Disposables.empty();
+                Disposable d = Disposable.empty();
                 e.setDisposable(d);
 
                 try {
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeDetachTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeDetachTest.java
index 25c2ce742a..ba720a02f9 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeDetachTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeDetachTest.java
@@ -64,7 +64,7 @@ public void onComplete() {
 
     @Test
     public void cancelDetaches() throws Exception {
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         final WeakReference wr = new WeakReference(d);
 
         TestObserver to = new Maybe() {
@@ -90,7 +90,7 @@ protected void subscribeActual(MaybeObserver observer) {
 
     @Test
     public void completeDetaches() throws Exception {
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         final WeakReference wr = new WeakReference(d);
 
         TestObserver to = new Maybe() {
@@ -116,7 +116,7 @@ protected void subscribeActual(MaybeObserver observer) {
 
     @Test
     public void errorDetaches() throws Exception {
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         final WeakReference wr = new WeakReference(d);
 
         TestObserver to = new Maybe() {
@@ -142,7 +142,7 @@ protected void subscribeActual(MaybeObserver observer) {
 
     @Test
     public void successDetaches() throws Exception {
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         final WeakReference wr = new WeakReference(d);
 
         TestObserver to = new Maybe() {
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeDoOnEventTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeDoOnEventTest.java
index 989599f2c6..abe91714e7 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeDoOnEventTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeDoOnEventTest.java
@@ -58,7 +58,7 @@ public void accept(Integer v, Throwable e) throws Exception {
     public void onSubscribeCrash() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable bs = Disposables.empty();
+            final Disposable bs = Disposable.empty();
 
             new Maybe() {
                 @Override
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeMergeArrayTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeMergeArrayTest.java
index 5d74906294..2212d50eed 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeMergeArrayTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeMergeArrayTest.java
@@ -17,11 +17,11 @@
 
 import java.util.*;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 import org.reactivestreams.Subscription;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.internal.fuseable.*;
 import io.reactivex.rxjava3.internal.operators.maybe.MaybeMergeArray.MergeMaybeObserver;
@@ -178,7 +178,7 @@ public void mergeBadSource() {
         Maybe.mergeArray(new Maybe() {
             @Override
             protected void subscribeActual(MaybeObserver observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onSuccess(1);
                 observer.onSuccess(2);
                 observer.onSuccess(3);
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybePeekTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybePeekTest.java
index 2dce4c4524..cbf4d60b34 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybePeekTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybePeekTest.java
@@ -17,10 +17,10 @@
 
 import java.util.List;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.*;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -56,7 +56,7 @@ public void doubleError() {
             TestObserverEx to = new Maybe() {
                 @Override
                 protected void subscribeActual(MaybeObserver observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException("First"));
                     observer.onError(new TestException("Second"));
                 }
@@ -87,7 +87,7 @@ public void doubleComplete() {
         TestObserver to = new Maybe() {
             @Override
             protected void subscribeActual(MaybeObserver observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onComplete();
                 observer.onComplete();
             }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeUsingTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeUsingTest.java
index 79c81bf9a5..c9ff65e09a 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeUsingTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeUsingTest.java
@@ -411,11 +411,11 @@ public MaybeSource apply(Object v) throws Exception {
                     return Maybe.wrap(new MaybeSource() {
                         @Override
                         public void subscribe(MaybeObserver observer) {
-                            Disposable d1 = Disposables.empty();
+                            Disposable d1 = Disposable.empty();
 
                             observer.onSubscribe(d1);
 
-                            Disposable d2 = Disposables.empty();
+                            Disposable d2 = Disposable.empty();
 
                             observer.onSubscribe(d2);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/FlowableConcatMapMaybeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/FlowableConcatMapMaybeTest.java
index 488a803172..47dd3d1284 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/FlowableConcatMapMaybeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/FlowableConcatMapMaybeTest.java
@@ -19,11 +19,11 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 import org.reactivestreams.Subscriber;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.*;
 import io.reactivex.rxjava3.functions.Function;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -302,7 +302,7 @@ public MaybeSource apply(Integer v)
                                     @Override
                                     protected void subscribeActual(
                                             MaybeObserver observer) {
-                                        observer.onSubscribe(Disposables.empty());
+                                        observer.onSubscribe(Disposable.empty());
                                         obs.set(observer);
                                     }
                             };
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/FlowableConcatMapSingleTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/FlowableConcatMapSingleTest.java
index 359053cdb5..5da39ff395 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/FlowableConcatMapSingleTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/FlowableConcatMapSingleTest.java
@@ -18,11 +18,11 @@
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 import org.reactivestreams.Subscriber;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.*;
 import io.reactivex.rxjava3.functions.Function;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -220,7 +220,7 @@ public SingleSource apply(Integer v)
                                     @Override
                                     protected void subscribeActual(
                                             SingleObserver observer) {
-                                        observer.onSubscribe(Disposables.empty());
+                                        observer.onSubscribe(Disposable.empty());
                                         obs.set(observer);
                                     }
                             };
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/FlowableSwitchMapMaybeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/FlowableSwitchMapMaybeTest.java
index 1eea34f3fa..b7b66c3ca4 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/FlowableSwitchMapMaybeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/FlowableSwitchMapMaybeTest.java
@@ -18,11 +18,11 @@
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 import org.reactivestreams.*;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.*;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -422,7 +422,7 @@ public MaybeSource apply(Integer v)
                         @Override
                         protected void subscribeActual(
                                 MaybeObserver observer) {
-                            observer.onSubscribe(Disposables.empty());
+                            observer.onSubscribe(Disposable.empty());
                             moRef.set(observer);
                         }
                     };
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/FlowableSwitchMapSingleTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/FlowableSwitchMapSingleTest.java
index a834f327f9..ca1cb6d919 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/FlowableSwitchMapSingleTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/FlowableSwitchMapSingleTest.java
@@ -18,11 +18,11 @@
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 import org.reactivestreams.*;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.*;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -370,7 +370,7 @@ public SingleSource apply(Integer v)
                         @Override
                         protected void subscribeActual(
                                 SingleObserver observer) {
-                            observer.onSubscribe(Disposables.empty());
+                            observer.onSubscribe(Disposable.empty());
                             moRef.set(observer);
                         }
                     };
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableConcatMapMaybeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableConcatMapMaybeTest.java
index 30f78c41a9..21b9936292 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableConcatMapMaybeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableConcatMapMaybeTest.java
@@ -19,10 +19,10 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.*;
 import io.reactivex.rxjava3.functions.Function;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -239,7 +239,7 @@ public void mainErrorAfterInnerError() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onNext(1);
                     observer.onError(new TestException("outer"));
                 }
@@ -273,7 +273,7 @@ public MaybeSource apply(Integer v)
                                     @Override
                                     protected void subscribeActual(
                                             MaybeObserver observer) {
-                                        observer.onSubscribe(Disposables.empty());
+                                        observer.onSubscribe(Disposable.empty());
                                         obs.set(observer);
                                     }
                             };
@@ -378,7 +378,7 @@ public void cancelNoConcurrentClean() {
                 new ConcatMapMaybeMainObserver(
                         to, Functions.justFunction(Maybe.never()), 16, ErrorMode.IMMEDIATE);
 
-        operator.onSubscribe(Disposables.empty());
+        operator.onSubscribe(Disposable.empty());
 
         operator.queue.offer(1);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableConcatMapSingleTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableConcatMapSingleTest.java
index 2d4b46f187..8f24b87bbb 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableConcatMapSingleTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableConcatMapSingleTest.java
@@ -18,10 +18,10 @@
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.*;
 import io.reactivex.rxjava3.functions.Function;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -157,7 +157,7 @@ public void mainErrorAfterInnerError() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onNext(1);
                     observer.onError(new TestException("outer"));
                 }
@@ -191,7 +191,7 @@ public SingleSource apply(Integer v)
                                     @Override
                                     protected void subscribeActual(
                                             SingleObserver observer) {
-                                        observer.onSubscribe(Disposables.empty());
+                                        observer.onSubscribe(Disposable.empty());
                                         obs.set(observer);
                                     }
                             };
@@ -318,7 +318,7 @@ public void cancelNoConcurrentClean() {
                 new ConcatMapSingleMainObserver(
                         to, Functions.justFunction(Single.never()), 16, ErrorMode.IMMEDIATE);
 
-        operator.onSubscribe(Disposables.empty());
+        operator.onSubscribe(Disposable.empty());
 
         operator.queue.offer(1);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableSwitchMapCompletableTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableSwitchMapCompletableTest.java
index b308119424..b060b9d03d 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableSwitchMapCompletableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableSwitchMapCompletableTest.java
@@ -17,10 +17,10 @@
 
 import java.util.List;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.*;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -314,7 +314,7 @@ public void innerErrorThenMainError() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onNext(1);
                     observer.onError(new TestException("main"));
                 }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableSwitchMapMaybeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableSwitchMapMaybeTest.java
index c9a1f9a0dd..7f877089b5 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableSwitchMapMaybeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableSwitchMapMaybeTest.java
@@ -18,10 +18,10 @@
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.*;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -355,7 +355,7 @@ public void mainErrorAfterTermination() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onNext(1);
                     observer.onError(new TestException("outer"));
                 }
@@ -385,7 +385,7 @@ public void innerErrorAfterTermination() {
             TestObserverEx to = new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onNext(1);
                     observer.onError(new TestException("outer"));
                 }
@@ -398,7 +398,7 @@ public MaybeSource apply(Integer v)
                         @Override
                         protected void subscribeActual(
                                 MaybeObserver observer) {
-                            observer.onSubscribe(Disposables.empty());
+                            observer.onSubscribe(Disposable.empty());
                             moRef.set(observer);
                         }
                     };
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableSwitchMapSingleTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableSwitchMapSingleTest.java
index a59e9954ec..957c20ba0e 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableSwitchMapSingleTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/mixed/ObservableSwitchMapSingleTest.java
@@ -18,10 +18,10 @@
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.*;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -324,7 +324,7 @@ public void mainErrorAfterTermination() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onNext(1);
                     observer.onError(new TestException("outer"));
                 }
@@ -354,7 +354,7 @@ public void innerErrorAfterTermination() {
             TestObserverEx to = new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onNext(1);
                     observer.onError(new TestException("outer"));
                 }
@@ -367,7 +367,7 @@ public SingleSource apply(Integer v)
                         @Override
                         protected void subscribeActual(
                                 SingleObserver observer) {
-                            observer.onSubscribe(Disposables.empty());
+                            observer.onSubscribe(Disposable.empty());
                             moRef.set(observer);
                         }
                     };
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/BlockingObservableNextTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/BlockingObservableNextTest.java
index 194619b8bc..0fcec3a172 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/BlockingObservableNextTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/BlockingObservableNextTest.java
@@ -247,7 +247,7 @@ public void noBufferingOrBlockingOfSequence() throws Throwable {
 
                     @Override
                     public void subscribe(final Observer o) {
-                        o.onSubscribe(Disposables.empty());
+                        o.onSubscribe(Disposable.empty());
                         task.replace(Schedulers.single().scheduleDirect(new Runnable() {
 
                             @Override
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/BlockingObservableToFutureTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/BlockingObservableToFutureTest.java
index 756f0b4eb3..bca24503c1 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/BlockingObservableToFutureTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/BlockingObservableToFutureTest.java
@@ -20,12 +20,12 @@
 import java.util.*;
 import java.util.concurrent.*;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
 import io.reactivex.rxjava3.core.Observable;
 import io.reactivex.rxjava3.core.Observer;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 
 public class BlockingObservableToFutureTest extends RxJavaTest {
@@ -65,7 +65,7 @@ public void toFutureWithException() {
 
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onNext("one");
                 observer.onError(new TestException());
             }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/BlockingObservableToIteratorTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/BlockingObservableToIteratorTest.java
index 3a98208d70..3658c24b97 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/BlockingObservableToIteratorTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/BlockingObservableToIteratorTest.java
@@ -56,7 +56,7 @@ public void toIteratorWithException() {
 
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onNext("one");
                 observer.onError(new TestException());
             }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/Burst.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/Burst.java
index a7aca59ada..7e3dfbf8bf 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/Burst.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/Burst.java
@@ -16,7 +16,7 @@
 
 import io.reactivex.rxjava3.core.Observable;
 import io.reactivex.rxjava3.core.Observer;
-import io.reactivex.rxjava3.disposables.Disposables;
+import io.reactivex.rxjava3.disposables.Disposable;
 
 /**
  * Creates {@link Observable} of a number of items followed by either an error or
@@ -36,7 +36,7 @@ public final class Burst extends Observable {
 
     @Override
     protected void subscribeActual(final Observer observer) {
-        observer.onSubscribe(Disposables.empty());
+        observer.onSubscribe(Disposable.empty());
         for (T item: items) {
             observer.onNext(item);
         }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableAllTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableAllTest.java
index 5934706a4d..38be122378 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableAllTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableAllTest.java
@@ -311,7 +311,7 @@ public void predicateThrowsObservable() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
 
                     observer.onNext(1);
                     observer.onNext(2);
@@ -342,7 +342,7 @@ public void predicateThrows() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
 
                     observer.onNext(1);
                     observer.onNext(2);
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableAnyTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableAnyTest.java
index a79479067a..6ce9410340 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableAnyTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableAnyTest.java
@@ -21,10 +21,10 @@
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -517,7 +517,7 @@ public void predicateThrowsSuppressOthers() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
 
                     observer.onNext(1);
                     observer.onNext(2);
@@ -548,7 +548,7 @@ public void badSourceSingle() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException("First"));
 
                     observer.onNext(1);
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableBlockingTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableBlockingTest.java
index d1c6c6fc51..c8454452b4 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableBlockingTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableBlockingTest.java
@@ -257,7 +257,7 @@ public void run() {
         new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 s[0] = observer;
             }
         }.blockingSubscribe(to);
@@ -294,7 +294,7 @@ public void blockingCancelUpfront() {
         o.dispose();
         assertTrue(o.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         o.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableBufferTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableBufferTest.java
index 03c437dad9..34ae5ed780 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableBufferTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableBufferTest.java
@@ -70,7 +70,7 @@ public void skipAndCountOverlappingBuffers() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onNext("one");
                 observer.onNext("two");
                 observer.onNext("three");
@@ -126,7 +126,7 @@ public void timedAndCount() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 push(observer, "one", 10);
                 push(observer, "two", 90);
                 push(observer, "three", 110);
@@ -158,7 +158,7 @@ public void timed() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 push(observer, "one", 97);
                 push(observer, "two", 98);
                 /**
@@ -192,7 +192,7 @@ public void observableBasedOpenerAndCloser() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 push(observer, "one", 10);
                 push(observer, "two", 60);
                 push(observer, "three", 110);
@@ -205,7 +205,7 @@ public void subscribe(Observer observer) {
         Observable openings = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 push(observer, new Object(), 50);
                 push(observer, new Object(), 200);
                 complete(observer, 250);
@@ -218,7 +218,7 @@ public Observable apply(Object opening) {
                 return Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(Observer observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
                         push(observer, new Object(), 100);
                         complete(observer, 101);
                     }
@@ -1360,8 +1360,8 @@ public void openClosebadSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    Disposable bs1 = Disposables.empty();
-                    Disposable bs2 = Disposables.empty();
+                    Disposable bs1 = Disposable.empty();
+                    Disposable bs2 = Disposable.empty();
 
                     observer.onSubscribe(bs1);
 
@@ -1484,8 +1484,8 @@ protected void subscribeActual(Observer observer) {
 
                     assertFalse(((Disposable)observer).isDisposed());
 
-                    Disposable bs1 = Disposables.empty();
-                    Disposable bs2 = Disposables.empty();
+                    Disposable bs1 = Disposable.empty();
+                    Disposable bs2 = Disposable.empty();
 
                     observer.onSubscribe(bs1);
 
@@ -1529,8 +1529,8 @@ protected void subscribeActual(Observer observer) {
 
                     assertFalse(((Disposable)observer).isDisposed());
 
-                    Disposable bs1 = Disposables.empty();
-                    Disposable bs2 = Disposables.empty();
+                    Disposable bs1 = Disposable.empty();
+                    Disposable bs2 = Disposable.empty();
 
                     observer.onSubscribe(bs1);
 
@@ -1602,7 +1602,7 @@ public void bufferExactBoundaryBadSource() {
         Observable ps = new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onComplete();
                 observer.onNext(1);
                 observer.onComplete();
@@ -1613,7 +1613,7 @@ protected void subscribeActual(Observer observer) {
         Observable b = new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 ref.set(observer);
             }
         };
@@ -1658,7 +1658,7 @@ public void timedInternalState() {
         BufferExactUnboundedObserver> sub = new BufferExactUnboundedObserver>(
                 to, Functions.justSupplier((List)new ArrayList()), 1, TimeUnit.SECONDS, sch);
 
-        sub.onSubscribe(Disposables.empty());
+        sub.onSubscribe(Disposable.empty());
 
         assertFalse(sub.isDisposed());
 
@@ -1708,7 +1708,7 @@ public void timedSkipInternalState() {
         BufferSkipBoundedObserver> sub = new BufferSkipBoundedObserver>(
                 to, Functions.justSupplier((List)new ArrayList()), 1, 1, TimeUnit.SECONDS, sch.createWorker());
 
-        sub.onSubscribe(Disposables.empty());
+        sub.onSubscribe(Disposable.empty());
 
         sub.enter();
         sub.onComplete();
@@ -1736,7 +1736,7 @@ public List get() throws Exception {
                     }
                 }, 1, 1, TimeUnit.SECONDS, sch.createWorker());
 
-        sub.onSubscribe(Disposables.empty());
+        sub.onSubscribe(Disposable.empty());
 
         sub.run();
 
@@ -1755,7 +1755,7 @@ public void timedSizeBufferAlreadyCleared() {
                         1, TimeUnit.SECONDS, 1, false, sch.createWorker())
         ;
 
-        Disposable bs = Disposables.empty();
+        Disposable bs = Disposable.empty();
 
         sub.onSubscribe(bs);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableCacheTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableCacheTest.java
index c3695b24d6..20c4fde308 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableCacheTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableCacheTest.java
@@ -20,12 +20,12 @@
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
 import io.reactivex.rxjava3.core.Observable;
 import io.reactivex.rxjava3.core.Observer;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.observers.TestObserver;
@@ -64,7 +64,7 @@ public void cache() throws InterruptedException {
 
             @Override
             public void subscribe(final Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 new Thread(new Runnable() {
 
                     @Override
@@ -198,7 +198,7 @@ public void noMissingBackpressureException() {
         Observable firehose = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer t) {
-                t.onSubscribe(Disposables.empty());
+                t.onSubscribe(Disposable.empty());
                 for (int i = 0; i < m; i++) {
                     t.onNext(i);
                 }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatMapCompletableTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatMapCompletableTest.java
index a3cd0dcdb5..55b880a9f9 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatMapCompletableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatMapCompletableTest.java
@@ -85,7 +85,7 @@ public void badSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
 
                     observer.onNext(1);
                     observer.onComplete();
@@ -248,4 +248,4 @@ public CompletableSource apply(Integer v) throws Exception {
             }
         };
     }
-}
\ No newline at end of file
+}
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatMapSchedulerTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatMapSchedulerTest.java
index ace3f55493..fa72be7ac6 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatMapSchedulerTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatMapSchedulerTest.java
@@ -20,12 +20,12 @@
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
 import io.reactivex.rxjava3.core.Observable;
 import io.reactivex.rxjava3.core.Observer;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.*;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -663,7 +663,7 @@ public void badInnerSource() {
             @Override
             protected void subscribeActual(Observer o) {
                 ts0[0] = o;
-                o.onSubscribe(Disposables.empty());
+                o.onSubscribe(Disposable.empty());
                 o.onError(new TestException("First"));
             }
         }), 2, ImmediateThinScheduler.INSTANCE)
@@ -689,7 +689,7 @@ public void badInnerSourceDelayError() {
             @Override
             protected void subscribeActual(Observer o) {
                 ts0[0] = o;
-                o.onSubscribe(Disposables.empty());
+                o.onSubscribe(Disposable.empty());
                 o.onError(new TestException("First"));
             }
         }), true, 2, ImmediateThinScheduler.INSTANCE)
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatMapTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatMapTest.java
index 61b1f1579b..769f42f984 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatMapTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatMapTest.java
@@ -150,7 +150,7 @@ public void badSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
 
                     observer.onNext(1);
                     observer.onComplete();
@@ -181,7 +181,7 @@ public void badSourceDelayError() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
 
                     observer.onNext(1);
                     observer.onComplete();
@@ -355,7 +355,7 @@ public ObservableSource apply(Integer v) throws Exception {
                         @Override
                         protected void subscribeActual(Observer observer) {
                             o[0] = observer;
-                            observer.onSubscribe(Disposables.empty());
+                            observer.onSubscribe(Disposable.empty());
                             observer.onComplete();
                         }
                     };
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatTest.java
index 0e8c64b92d..354c2afc27 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatTest.java
@@ -86,7 +86,7 @@ public void concatObservableOfObservables() {
 
             @Override
             public void subscribe(Observer> observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 // simulate what would happen in an Observable
                 observer.onNext(odds);
                 observer.onNext(even);
@@ -161,7 +161,7 @@ public void nestedAsyncConcat() throws InterruptedException {
 
             @Override
             public void subscribe(final Observer> observer) {
-                final Disposable d = Disposables.empty();
+                final Disposable d = Disposable.empty();
                 observer.onSubscribe(d);
                 parent.set(new Thread(new Runnable() {
 
@@ -348,7 +348,7 @@ public void concatNonBlockingObservables() {
 
             @Override
             public void subscribe(Observer> observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 // simulate what would happen in an Observable
                 observer.onNext(Observable.unsafeCreate(w1));
                 observer.onNext(Observable.unsafeCreate(w2));
@@ -666,7 +666,7 @@ public void concatWithNonCompliantSourceDoubleOnComplete() {
 
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onNext("hello");
                 observer.onComplete();
                 observer.onComplete();
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatWithCompletableTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatWithCompletableTest.java
index 65d85f20d5..4ca6d1bb7b 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatWithCompletableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatWithCompletableTest.java
@@ -106,10 +106,10 @@ public void badSource() {
         new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                Disposable bs1 = Disposables.empty();
+                Disposable bs1 = Disposable.empty();
                 observer.onSubscribe(bs1);
 
-                Disposable bs2 = Disposables.empty();
+                Disposable bs2 = Disposable.empty();
                 observer.onSubscribe(bs2);
 
                 assertFalse(bs1.isDisposed());
@@ -127,7 +127,7 @@ public void consumerDisposed() {
         new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                Disposable bs1 = Disposables.empty();
+                Disposable bs1 = Disposable.empty();
                 observer.onSubscribe(bs1);
 
                 assertFalse(((Disposable)observer).isDisposed());
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatWithMaybeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatWithMaybeTest.java
index 4d4f94954a..cd35a91ad1 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatWithMaybeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatWithMaybeTest.java
@@ -117,7 +117,7 @@ public void consumerDisposed() {
         new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                Disposable bs1 = Disposables.empty();
+                Disposable bs1 = Disposable.empty();
                 observer.onSubscribe(bs1);
 
                 assertFalse(((Disposable)observer).isDisposed());
@@ -138,10 +138,10 @@ public void badSource() {
         new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                Disposable bs1 = Disposables.empty();
+                Disposable bs1 = Disposable.empty();
                 observer.onSubscribe(bs1);
 
-                Disposable bs2 = Disposables.empty();
+                Disposable bs2 = Disposable.empty();
                 observer.onSubscribe(bs2);
 
                 assertFalse(bs1.isDisposed());
@@ -159,10 +159,10 @@ public void badSource2() {
         Flowable.empty().concatWith(new Maybe() {
             @Override
             protected void subscribeActual(MaybeObserver observer) {
-                Disposable bs1 = Disposables.empty();
+                Disposable bs1 = Disposable.empty();
                 observer.onSubscribe(bs1);
 
-                Disposable bs2 = Disposables.empty();
+                Disposable bs2 = Disposable.empty();
                 observer.onSubscribe(bs2);
 
                 assertFalse(bs1.isDisposed());
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatWithSingleTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatWithSingleTest.java
index 73a0ff3c0d..45c0b6f269 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatWithSingleTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableConcatWithSingleTest.java
@@ -90,7 +90,7 @@ public void consumerDisposed() {
         new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                Disposable bs1 = Disposables.empty();
+                Disposable bs1 = Disposable.empty();
                 observer.onSubscribe(bs1);
 
                 assertFalse(((Disposable)observer).isDisposed());
@@ -111,10 +111,10 @@ public void badSource() {
         new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                Disposable bs1 = Disposables.empty();
+                Disposable bs1 = Disposable.empty();
                 observer.onSubscribe(bs1);
 
-                Disposable bs2 = Disposables.empty();
+                Disposable bs2 = Disposable.empty();
                 observer.onSubscribe(bs2);
 
                 assertFalse(bs1.isDisposed());
@@ -132,10 +132,10 @@ public void badSource2() {
         Flowable.empty().concatWith(new Single() {
             @Override
             protected void subscribeActual(SingleObserver observer) {
-                Disposable bs1 = Disposables.empty();
+                Disposable bs1 = Disposable.empty();
                 observer.onSubscribe(bs1);
 
-                Disposable bs2 = Disposables.empty();
+                Disposable bs2 = Disposable.empty();
                 observer.onSubscribe(bs2);
 
                 assertFalse(bs1.isDisposed());
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableCreateTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableCreateTest.java
index 4a22746c54..f5be343b40 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableCreateTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableCreateTest.java
@@ -36,7 +36,7 @@ public void nullArgument() {
 
     @Test
     public void basic() {
-        final Disposable d = Disposables.empty();
+        final Disposable d = Disposable.empty();
 
         Observable.create(new ObservableOnSubscribe() {
             @Override
@@ -61,8 +61,8 @@ public void subscribe(ObservableEmitter e) throws Exception {
 
     @Test
     public void basicWithCancellable() {
-        final Disposable d1 = Disposables.empty();
-        final Disposable d2 = Disposables.empty();
+        final Disposable d1 = Disposable.empty();
+        final Disposable d2 = Disposable.empty();
 
         Observable.create(new ObservableOnSubscribe() {
             @Override
@@ -94,7 +94,7 @@ public void cancel() throws Exception {
 
     @Test
     public void basicWithError() {
-        final Disposable d = Disposables.empty();
+        final Disposable d = Disposable.empty();
 
         Observable.create(new ObservableOnSubscribe() {
             @Override
@@ -118,7 +118,7 @@ public void subscribe(ObservableEmitter e) throws Exception {
 
     @Test
     public void basicSerialized() {
-        final Disposable d = Disposables.empty();
+        final Disposable d = Disposable.empty();
 
         Observable.create(new ObservableOnSubscribe() {
             @Override
@@ -145,7 +145,7 @@ public void subscribe(ObservableEmitter e) throws Exception {
 
     @Test
     public void basicWithErrorSerialized() {
-        final Disposable d = Disposables.empty();
+        final Disposable d = Disposable.empty();
 
         Observable.create(new ObservableOnSubscribe() {
             @Override
@@ -174,7 +174,7 @@ public void wrap() {
         Observable.wrap(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onNext(1);
                 observer.onNext(2);
                 observer.onNext(3);
@@ -192,7 +192,7 @@ public void unsafe() {
         Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onNext(1);
                 observer.onNext(2);
                 observer.onNext(3);
@@ -322,7 +322,7 @@ public void onErrorCrash() {
         Observable.create(new ObservableOnSubscribe() {
             @Override
             public void subscribe(ObservableEmitter e) throws Exception {
-                Disposable d = Disposables.empty();
+                Disposable d = Disposable.empty();
                 e.setDisposable(d);
                 try {
                     e.onError(new IOException());
@@ -358,7 +358,7 @@ public void onCompleteCrash() {
         Observable.create(new ObservableOnSubscribe() {
             @Override
             public void subscribe(ObservableEmitter e) throws Exception {
-                Disposable d = Disposables.empty();
+                Disposable d = Disposable.empty();
                 e.setDisposable(d);
                 try {
                     e.onComplete();
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDebounceTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDebounceTest.java
index d66de923f8..af60b93018 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDebounceTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDebounceTest.java
@@ -55,7 +55,7 @@ public void debounceWithCompleted() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 publishNext(observer, 100, "one");    // Should be skipped since "two" will arrive before the timeout expires.
                 publishNext(observer, 400, "two");    // Should be published since "three" will arrive after the timeout expires.
                 publishNext(observer, 900, "three");   // Should be skipped since onComplete will arrive before the timeout expires.
@@ -81,7 +81,7 @@ public void debounceNeverEmits() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 // all should be skipped since they are happening faster than the 200ms timeout
                 publishNext(observer, 100, "a");    // Should be skipped
                 publishNext(observer, 200, "b");    // Should be skipped
@@ -111,7 +111,7 @@ public void debounceWithError() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 Exception error = new TestException();
                 publishNext(observer, 100, "one");    // Should be published since "two" will arrive after the timeout expires.
                 publishNext(observer, 600, "two");    // Should be skipped since onError will arrive before the timeout expires.
@@ -332,7 +332,7 @@ public void badSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onComplete();
                     observer.onNext(1);
                     observer.onError(new TestException());
@@ -418,7 +418,7 @@ public void disposedInOnComplete() {
         new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 to.dispose();
                 observer.onComplete();
             }
@@ -442,7 +442,7 @@ public ObservableSource apply(Integer o) throws Exception {
                 return new Observable() {
                     @Override
                     protected void subscribeActual(Observer observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
                         ref.set(observer);
                     }
                 };
@@ -475,7 +475,7 @@ public void timedDisposedIgnoredBySource() {
             @Override
             protected void subscribeActual(
                     Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 to.dispose();
                 observer.onNext(1);
                 observer.onComplete();
@@ -491,7 +491,7 @@ public void timedLateEmit() {
         DebounceTimedObserver sub = new DebounceTimedObserver(
                 to, 1, TimeUnit.SECONDS, new TestScheduler().createWorker());
 
-        sub.onSubscribe(Disposables.empty());
+        sub.onSubscribe(Disposable.empty());
 
         DebounceEmitter de = new DebounceEmitter(1, 50, sub);
         de.run();
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDematerializeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDematerializeTest.java
index 84a6b06b06..5d3e2b6be1 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDematerializeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDematerializeTest.java
@@ -18,10 +18,10 @@
 
 import java.util.List;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.Function;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -202,7 +202,7 @@ public void eventsAfterDematerializedTerminal() {
             new Observable>() {
                 @Override
                 protected void subscribeActual(Observer> observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onNext(Notification.createOnComplete());
                     observer.onNext(Notification.createOnNext(1));
                     observer.onNext(Notification.createOnError(new TestException("First")));
@@ -225,7 +225,7 @@ public void nonNotificationInstanceAfterDispose() {
         new Observable>() {
             @Override
             protected void subscribeActual(Observer> observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onNext(Notification.createOnComplete());
                 observer.onNext(Notification.createOnNext(1));
             }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDistinctTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDistinctTest.java
index 2a9d889ba2..888a39cb89 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDistinctTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDistinctTest.java
@@ -205,7 +205,7 @@ public void badSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
 
                     observer.onNext(1);
                     observer.onComplete();
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDistinctUntilChangedTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDistinctUntilChangedTest.java
index f28a9fb18b..13122988cf 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDistinctUntilChangedTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDistinctUntilChangedTest.java
@@ -19,11 +19,11 @@
 import java.io.IOException;
 import java.util.List;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.*;
 import org.mockito.InOrder;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.fuseable.QueueFuseable;
@@ -196,7 +196,7 @@ public void ignoreCancel() {
             Observable.wrap(new ObservableSource() {
                 @Override
                 public void subscribe(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onNext(1);
                     observer.onNext(2);
                     observer.onNext(3);
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDoOnEachTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDoOnEachTest.java
index 4205fad5e2..30f0cb2d6f 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDoOnEachTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDoOnEachTest.java
@@ -21,10 +21,10 @@
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.*;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.*;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -232,7 +232,7 @@ public void ignoreCancel() {
             Observable.wrap(new ObservableSource() {
                 @Override
                 public void subscribe(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onNext(1);
                     observer.onNext(2);
                     observer.onError(new IOException());
@@ -262,7 +262,7 @@ public void onErrorAfterCrash() {
             Observable.wrap(new ObservableSource() {
                 @Override
                 public void subscribe(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException());
                 }
             })
@@ -289,7 +289,7 @@ public void onCompleteAfterCrash() {
             Observable.wrap(new ObservableSource() {
                 @Override
                 public void subscribe(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onComplete();
                 }
             })
@@ -313,7 +313,7 @@ public void onCompleteCrash() {
         Observable.wrap(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onComplete();
             }
         })
@@ -335,7 +335,7 @@ public void ignoreCancelConditional() {
             Observable.wrap(new ObservableSource() {
                 @Override
                 public void subscribe(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onNext(1);
                     observer.onNext(2);
                     observer.onError(new IOException());
@@ -366,7 +366,7 @@ public void onErrorAfterCrashConditional() {
             Observable.wrap(new ObservableSource() {
                 @Override
                 public void subscribe(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException());
                 }
             })
@@ -410,7 +410,7 @@ public void onCompleteAfterCrashConditional() {
             Observable.wrap(new ObservableSource() {
                 @Override
                 public void subscribe(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onComplete();
                 }
             })
@@ -435,7 +435,7 @@ public void onCompleteCrashConditional() {
         Observable.wrap(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onComplete();
             }
         })
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDoOnSubscribeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDoOnSubscribeTest.java
index ef57c50225..26cd2b340b 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDoOnSubscribeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableDoOnSubscribeTest.java
@@ -74,7 +74,7 @@ public void doOnUnSubscribeWorksWithRefCount() throws Exception {
 
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 onSubscribed.incrementAndGet();
                 sref.set(observer);
             }
@@ -111,7 +111,7 @@ public void accept(Disposable d) {
     public void onSubscribeCrash() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable bs = Disposables.empty();
+            final Disposable bs = Disposable.empty();
 
             new Observable() {
                 @Override
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableElementAtTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableElementAtTest.java
index a11255abf2..679915dc51 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableElementAtTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableElementAtTest.java
@@ -17,12 +17,12 @@
 
 import java.util.*;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
 import io.reactivex.rxjava3.core.Observable;
 import io.reactivex.rxjava3.core.Observer;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.Function;
 import io.reactivex.rxjava3.plugins.RxJavaPlugins;
@@ -233,7 +233,7 @@ public void badSourceObservable() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
 
                     observer.onNext(1);
                     observer.onNext(2);
@@ -259,7 +259,7 @@ public void badSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
 
                     observer.onNext(1);
                     observer.onNext(2);
@@ -284,7 +284,7 @@ public void badSource2() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
 
                     observer.onNext(1);
                     observer.onNext(2);
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFlatMapCompletableTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFlatMapCompletableTest.java
index b07a13a6de..f5bf13b231 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFlatMapCompletableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFlatMapCompletableTest.java
@@ -372,7 +372,7 @@ public CompletableSource apply(Integer v) throws Exception {
                 return new Completable() {
                     @Override
                     protected void subscribeActual(CompletableObserver observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
 
                         assertFalse(((Disposable)observer).isDisposed());
 
@@ -447,7 +447,7 @@ public CompletableSource apply(Integer v) throws Exception {
                 return new Completable() {
                     @Override
                     protected void subscribeActual(CompletableObserver observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
 
                         assertFalse(((Disposable)observer).isDisposed());
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFlatMapMaybeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFlatMapMaybeTest.java
index fbd55ae32a..e1133ee311 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFlatMapMaybeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFlatMapMaybeTest.java
@@ -325,7 +325,7 @@ public void badSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException("First"));
                     observer.onError(new TestException("Second"));
                 }
@@ -348,7 +348,7 @@ public void badInnerSource() {
             .flatMapMaybe(Functions.justFunction(new Maybe() {
                 @Override
                 protected void subscribeActual(MaybeObserver observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException("First"));
                     observer.onError(new TestException("Second"));
                 }
@@ -437,7 +437,7 @@ public MaybeSource apply(Integer v) throws Exception {
                 return new Maybe() {
                     @Override
                     protected void subscribeActual(MaybeObserver observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
 
                         assertFalse(((Disposable)observer).isDisposed());
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFlatMapSingleTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFlatMapSingleTest.java
index 77db13d5a1..b8c7b351be 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFlatMapSingleTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFlatMapSingleTest.java
@@ -274,7 +274,7 @@ public void badSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException("First"));
                     observer.onError(new TestException("Second"));
                 }
@@ -297,7 +297,7 @@ public void badInnerSource() {
             .flatMapSingle(Functions.justFunction(new Single() {
                 @Override
                 protected void subscribeActual(SingleObserver observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException("First"));
                     observer.onError(new TestException("Second"));
                 }
@@ -352,7 +352,7 @@ public SingleSource apply(Integer v) throws Exception {
                 return new Single() {
                     @Override
                     protected void subscribeActual(SingleObserver observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
 
                         assertFalse(((Disposable)observer).isDisposed());
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFlatMapTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFlatMapTest.java
index cf31f26c3a..38defaf049 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFlatMapTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableFlatMapTest.java
@@ -992,7 +992,7 @@ public Integer apply(Integer v)
                     }
                 }, true, Integer.MAX_VALUE, 128);
 
-        merger.onSubscribe(Disposables.empty());
+        merger.onSubscribe(Disposable.empty());
         merger.getAndIncrement();
 
         merger.onNext(0);
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableGroupByTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableGroupByTest.java
index 14ff56a665..1eaf76cda8 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableGroupByTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableGroupByTest.java
@@ -188,7 +188,7 @@ public void groupedEventStream() throws Throwable {
 
             @Override
             public void subscribe(final Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 System.out.println("*** Subscribing to EventStream ***");
                 subscribeCounter.incrementAndGet();
                 new Thread(new Runnable() {
@@ -602,7 +602,7 @@ public void firstGroupsCompleteAndParentSlowToThenEmitFinalGroupsAndThenComplete
 
             @Override
             public void subscribe(Observer sub) {
-                sub.onSubscribe(Disposables.empty());
+                sub.onSubscribe(Disposable.empty());
                 sub.onNext(1);
                 sub.onNext(2);
                 sub.onNext(1);
@@ -681,7 +681,7 @@ public void firstGroupsCompleteAndParentSlowToThenEmitFinalGroupsWhichThenSubscr
 
             @Override
             public void subscribe(Observer sub) {
-                sub.onSubscribe(Disposables.empty());
+                sub.onSubscribe(Disposable.empty());
                 sub.onNext(1);
                 sub.onNext(2);
                 sub.onNext(1);
@@ -773,7 +773,7 @@ public void firstGroupsCompleteAndParentSlowToThenEmitFinalGroupsWhichThenObserv
 
             @Override
             public void subscribe(Observer sub) {
-                sub.onSubscribe(Disposables.empty());
+                sub.onSubscribe(Disposable.empty());
                 sub.onNext(1);
                 sub.onNext(2);
                 sub.onNext(1);
@@ -850,7 +850,7 @@ public void groupsWithNestedSubscribeOn() throws InterruptedException {
 
             @Override
             public void subscribe(Observer sub) {
-                sub.onSubscribe(Disposables.empty());
+                sub.onSubscribe(Disposable.empty());
                 sub.onNext(1);
                 sub.onNext(2);
                 sub.onNext(1);
@@ -907,7 +907,7 @@ public void groupsWithNestedObserveOn() throws InterruptedException {
 
             @Override
             public void subscribe(Observer sub) {
-                sub.onSubscribe(Disposables.empty());
+                sub.onSubscribe(Disposable.empty());
                 sub.onNext(1);
                 sub.onNext(2);
                 sub.onNext(1);
@@ -968,7 +968,7 @@ Observable SYNC_INFINITE_OBSERVABLE_OF_EVENT(final int numGroups, final A
 
             @Override
             public void subscribe(final Observer op) {
-                Disposable d = Disposables.empty();
+                Disposable d = Disposable.empty();
                 op.onSubscribe(d);
                 subscribeCounter.incrementAndGet();
                 int i = 0;
@@ -1427,7 +1427,7 @@ public void onNext(GroupedObservable o) {
                 new ObservableSource() {
                     @Override
                     public void subscribe(Observer observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
                         observer.onNext(0);
                         observer.onNext(1);
                         observer.onError(e);
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableJoinTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableJoinTest.java
index f10e62016d..aa17361026 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableJoinTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableJoinTest.java
@@ -20,11 +20,11 @@
 
 import java.util.List;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.*;
 import org.mockito.MockitoAnnotations;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -387,7 +387,7 @@ public void badOuterSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException("First"));
                     observer.onError(new TestException("Second"));
                 }
@@ -424,7 +424,7 @@ public void badEndSource() {
                         @Override
                         protected void subscribeActual(Observer observer) {
                             o[0] = observer;
-                            observer.onSubscribe(Disposables.empty());
+                            observer.onSubscribe(Disposable.empty());
                             observer.onError(new TestException("First"));
                         }
                     }),
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMapNotificationTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMapNotificationTest.java
index ee8931853f..7a84d0c981 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMapNotificationTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMapNotificationTest.java
@@ -13,10 +13,10 @@
 
 package io.reactivex.rxjava3.internal.operators.observable;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.*;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -67,7 +67,7 @@ protected void subscribeActual(Observer observer) {
                         Functions.justFunction(Observable.just(2)),
                         Functions.justSupplier(Observable.just(3))
                 );
-                mn.onSubscribe(Disposables.empty());
+                mn.onSubscribe(Disposable.empty());
             }
         });
     }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMaterializeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMaterializeTest.java
index 4549f6c514..daf82d84ee 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMaterializeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMaterializeTest.java
@@ -18,12 +18,12 @@
 import java.util.*;
 import java.util.concurrent.ExecutionException;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
 import io.reactivex.rxjava3.core.Observable;
 import io.reactivex.rxjava3.core.Observer;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.observers.DefaultObserver;
 import io.reactivex.rxjava3.testsupport.*;
@@ -150,7 +150,7 @@ private static class TestAsyncErrorObservable implements ObservableSource observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             t = new Thread(new Runnable() {
 
                 @Override
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeDelayErrorTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeDelayErrorTest.java
index 82fd2e28fa..877b75b70a 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeDelayErrorTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeDelayErrorTest.java
@@ -20,12 +20,12 @@
 import java.util.*;
 import java.util.concurrent.*;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.*;
 
 import io.reactivex.rxjava3.core.*;
 import io.reactivex.rxjava3.core.Observable;
 import io.reactivex.rxjava3.core.Observer;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.*;
 import io.reactivex.rxjava3.observers.DefaultObserver;
 import io.reactivex.rxjava3.testsupport.*;
@@ -219,7 +219,7 @@ public void mergeObservableOfObservables() {
 
             @Override
             public void subscribe(Observer> observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 // simulate what would happen in an Observable
                 observer.onNext(o1);
                 observer.onNext(o2);
@@ -317,7 +317,7 @@ private static class TestSynchronousObservable implements ObservableSource observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             observer.onNext("hello");
             observer.onComplete();
         }
@@ -328,7 +328,7 @@ private static class TestASynchronousObservable implements ObservableSource observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             t = new Thread(new Runnable() {
 
                 @Override
@@ -352,7 +352,7 @@ private static class TestErrorObservable implements ObservableSource {
 
         @Override
         public void subscribe(Observer observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             boolean errorThrown = false;
             for (String s : valuesToReturn) {
                 if (s == null) {
@@ -383,7 +383,7 @@ private static class TestAsyncErrorObservable implements ObservableSource observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             t = new Thread(new Runnable() {
 
                 @Override
@@ -453,7 +453,7 @@ public void errorInParentObservableDelayed() throws Exception {
             Observable> parentObservable = Observable.unsafeCreate(new ObservableSource>() {
                 @Override
                 public void subscribe(Observer> op) {
-                    op.onSubscribe(Disposables.empty());
+                    op.onSubscribe(Disposable.empty());
                     op.onNext(Observable.unsafeCreate(o1));
                     op.onNext(Observable.unsafeCreate(o2));
                     op.onError(new NullPointerException("throwing exception in parent"));
@@ -480,7 +480,7 @@ private static class TestASynchronous1sDelayedObservable implements ObservableSo
 
         @Override
         public void subscribe(final Observer observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             t = new Thread(new Runnable() {
 
                 @Override
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeMaxConcurrentTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeMaxConcurrentTest.java
index 8132fbe229..ac69ffbaa7 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeMaxConcurrentTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeMaxConcurrentTest.java
@@ -19,12 +19,12 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.*;
 
 import io.reactivex.rxjava3.core.*;
 import io.reactivex.rxjava3.core.Observable;
 import io.reactivex.rxjava3.core.Observer;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.internal.schedulers.IoScheduler;
 import io.reactivex.rxjava3.observers.TestObserver;
 import io.reactivex.rxjava3.schedulers.Schedulers;
@@ -99,7 +99,7 @@ private static class SubscriptionCheckObservable implements ObservableSource t1) {
-            t1.onSubscribe(Disposables.empty());
+            t1.onSubscribe(Disposable.empty());
             new Thread(new Runnable() {
 
                 @Override
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeTest.java
index 8736bd4ae3..c198ff83f0 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeTest.java
@@ -79,7 +79,7 @@ public void mergeObservableOfObservables() {
 
             @Override
             public void subscribe(Observer> observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 // simulate what would happen in an Observable
                 observer.onNext(o1);
                 observer.onNext(o2);
@@ -135,7 +135,7 @@ public void unSubscribeObservableOfObservables() throws InterruptedException {
             @Override
             public void subscribe(final Observer> observer) {
                 // verbose on purpose so I can track the inside of it
-                final Disposable upstream = Disposables.fromRunnable(new Runnable() {
+                final Disposable upstream = Disposable.fromRunnable(new Runnable() {
                     @Override
                     public void run() {
                         System.out.println("*** unsubscribed");
@@ -342,7 +342,7 @@ private static class TestSynchronousObservable implements ObservableSource observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             observer.onNext("hello");
             observer.onComplete();
         }
@@ -354,7 +354,7 @@ private static class TestASynchronousObservable implements ObservableSource observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             t = new Thread(new Runnable() {
 
                 @Override
@@ -385,7 +385,7 @@ private static class TestErrorObservable implements ObservableSource {
 
         @Override
         public void subscribe(Observer observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             for (String s : valuesToReturn) {
                 if (s == null) {
                     System.out.println("throwing exception");
@@ -486,7 +486,7 @@ public void subscribe(final Observer child) {
                 .subscribe(new Observer() {
                     @Override
                     public void onSubscribe(final Disposable d) {
-                        child.onSubscribe(Disposables.fromRunnable(new Runnable() {
+                        child.onSubscribe(Disposable.fromRunnable(new Runnable() {
                             @Override
                             public void run() {
                                 unsubscribed.set(true);
@@ -545,7 +545,7 @@ public void concurrencyWithSleeping() {
             public void subscribe(final Observer observer) {
                 Worker inner = Schedulers.newThread().createWorker();
                 final CompositeDisposable as = new CompositeDisposable();
-                as.add(Disposables.empty());
+                as.add(Disposable.empty());
                 as.add(inner);
 
                 observer.onSubscribe(as);
@@ -595,7 +595,7 @@ public void concurrencyWithBrokenOnCompleteContract() {
             public void subscribe(final Observer observer) {
                 Worker inner = Schedulers.newThread().createWorker();
                 final CompositeDisposable as = new CompositeDisposable();
-                as.add(Disposables.empty());
+                as.add(Disposable.empty());
                 as.add(inner);
 
                 observer.onSubscribe(as);
@@ -966,7 +966,7 @@ public Observable apply(final Integer i) {
 
                     @Override
                     public void subscribe(Observer observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
                         if (i < 500) {
                             try {
                                 Thread.sleep(1);
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeWithCompletableTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeWithCompletableTest.java
index 8cdb78df76..e5414dfe7f 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeWithCompletableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeWithCompletableTest.java
@@ -123,7 +123,7 @@ public void isDisposed() {
         new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
 
                 assertFalse(((Disposable)observer).isDisposed());
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeWithMaybeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeWithMaybeTest.java
index 5fd7763825..4949ad2081 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeWithMaybeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeWithMaybeTest.java
@@ -182,7 +182,7 @@ public void onErrorMainOverflow() {
             TestObserver to = new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observerRef.set(observer);
                 }
             }
@@ -234,7 +234,7 @@ public void isDisposed() {
         new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
 
                 assertFalse(((Disposable)observer).isDisposed());
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeWithSingleTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeWithSingleTest.java
index a4e38c0936..28c6099d4c 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeWithSingleTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableMergeWithSingleTest.java
@@ -174,7 +174,7 @@ public void onErrorMainOverflow() {
             TestObserver to = new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observerRef.set(observer);
                 }
             }
@@ -226,7 +226,7 @@ public void isDisposed() {
         new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
 
                 assertFalse(((Disposable)observer).isDisposed());
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableObserveOnTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableObserveOnTest.java
index 0602249ceb..286d115edf 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableObserveOnTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableObserveOnTest.java
@@ -495,7 +495,7 @@ public void badSource() {
             TestObserver to = new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onComplete();
                     observer.onNext(1);
                     observer.onError(new TestException());
@@ -675,7 +675,7 @@ public void nonFusedPollThrows() {
         new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
 
                 @SuppressWarnings("unchecked")
                 ObserveOnObserver oo = (ObserveOnObserver)observer;
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableOnErrorResumeNextTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableOnErrorResumeNextTest.java
index 2761a6c14b..69a9b0f7cd 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableOnErrorResumeNextTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableOnErrorResumeNextTest.java
@@ -21,12 +21,12 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 import org.mockito.Mockito;
 import org.reactivestreams.Subscription;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.functions.Function;
 import io.reactivex.rxjava3.internal.functions.Functions;
 import io.reactivex.rxjava3.observers.TestObserver;
@@ -42,7 +42,7 @@ public void resumeNextWithSynchronousExecution() {
 
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onNext("one");
                 observer.onError(new Throwable("injected failure"));
                 observer.onNext("two");
@@ -199,7 +199,7 @@ static class TestObservable implements ObservableSource {
         @Override
         public void subscribe(final Observer observer) {
             System.out.println("TestObservable subscribed to ...");
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             t = new Thread(new Runnable() {
 
                 @Override
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableOnErrorReturnTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableOnErrorReturnTest.java
index 3f20a8a7db..d9520fe6d2 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableOnErrorReturnTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableOnErrorReturnTest.java
@@ -20,11 +20,11 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 import org.mockito.Mockito;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.Function;
 import io.reactivex.rxjava3.observers.TestObserver;
@@ -188,7 +188,7 @@ private static class TestObservable implements ObservableSource {
 
         @Override
         public void subscribe(final Observer observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             System.out.println("TestObservable subscribed to ...");
             t = new Thread(new Runnable() {
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservablePublishTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservablePublishTest.java
index 38f0140e5d..ee80dc2cab 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservablePublishTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservablePublishTest.java
@@ -45,7 +45,7 @@ public void publish() throws InterruptedException {
 
             @Override
             public void subscribe(final Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 new Thread(new Runnable() {
 
                     @Override
@@ -354,7 +354,7 @@ public void connectIsIdempotent() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer t) {
-                t.onSubscribe(Disposables.empty());
+                t.onSubscribe(Disposable.empty());
                 calls.getAndIncrement();
             }
         });
@@ -589,7 +589,7 @@ public void badSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onNext(1);
                     observer.onComplete();
                     observer.onNext(2);
@@ -715,7 +715,7 @@ protected void subscribeActual(Observer observer) {
         .connect()
         .dispose();
 
-        Disposable bs = Disposables.empty();
+        Disposable bs = Disposable.empty();
 
         sub[0].onSubscribe(bs);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableReduceTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableReduceTest.java
index f05e007068..d997e9899f 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableReduceTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableReduceTest.java
@@ -19,10 +19,10 @@
 
 import java.util.List;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.*;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.plugins.RxJavaPlugins;
@@ -291,7 +291,7 @@ public void reduceMaybeBadSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onComplete();
                     observer.onNext(1);
                     observer.onError(new TestException());
@@ -345,7 +345,7 @@ public void seedBadSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onComplete();
                     observer.onNext(1);
                     observer.onError(new TestException());
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRefCountTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRefCountTest.java
index d5bcf0440e..7e862e1ad2 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRefCountTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRefCountTest.java
@@ -310,7 +310,7 @@ private Observable synchronousInterval() {
             @Override
             public void subscribe(Observer observer) {
                 final AtomicBoolean cancel = new AtomicBoolean();
-                observer.onSubscribe(Disposables.fromRunnable(new Runnable() {
+                observer.onSubscribe(Disposable.fromRunnable(new Runnable() {
                     @Override
                     public void run() {
                         cancel.set(true);
@@ -338,7 +338,7 @@ public void onlyFirstShouldSubscribeAndLastUnsubscribe() {
             @Override
             public void subscribe(Observer observer) {
                 subscriptionCount.incrementAndGet();
-                observer.onSubscribe(Disposables.fromRunnable(new Runnable() {
+                observer.onSubscribe(Disposable.fromRunnable(new Runnable() {
                     @Override
                     public void run() {
                             unsubscriptionCount.incrementAndGet();
@@ -623,7 +623,7 @@ public void reset() {
 
             @Override
             protected void subscribeActual(Observer observer) {
-                observer.onSubscribe(Disposables.disposed());
+                observer.onSubscribe(Disposable.disposed());
             }
         }.refCount();
 
@@ -779,7 +779,7 @@ static final class BadObservableSubscribe extends ConnectableObservable
         @Override
         public void connect(Consumer connection) {
             try {
-                connection.accept(Disposables.empty());
+                connection.accept(Disposable.empty());
             } catch (Throwable ex) {
                 throw ExceptionHelper.wrapOrThrow(ex);
             }
@@ -806,7 +806,7 @@ public void reset() {
         @Override
         public void connect(Consumer connection) {
             try {
-                connection.accept(Disposables.empty());
+                connection.accept(Disposable.empty());
             } catch (Throwable ex) {
                 throw ExceptionHelper.wrapOrThrow(ex);
             }
@@ -814,7 +814,7 @@ public void connect(Consumer connection) {
 
         @Override
         protected void subscribeActual(Observer observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
         }
     }
 
@@ -832,7 +832,7 @@ public void reset() {
 
         @Override
         protected void subscribeActual(Observer observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
         }
     }
 
@@ -882,7 +882,7 @@ static final class BadObservableSubscribe2 extends ConnectableObservable
         @Override
         public void connect(Consumer connection) {
             try {
-                connection.accept(Disposables.empty());
+                connection.accept(Disposable.empty());
             } catch (Throwable ex) {
                 throw ExceptionHelper.wrapOrThrow(ex);
             }
@@ -896,7 +896,7 @@ public void reset() {
         @Override
         protected void subscribeActual(Observer observer) {
             if (++count == 1) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
             } else {
                 throw new TestException("subscribeActual");
             }
@@ -922,7 +922,7 @@ static final class BadObservableConnect2 extends ConnectableObservable {
         @Override
         public void connect(Consumer connection) {
             try {
-                connection.accept(Disposables.empty());
+                connection.accept(Disposable.empty());
             } catch (Throwable ex) {
                 throw ExceptionHelper.wrapOrThrow(ex);
             }
@@ -935,7 +935,7 @@ public void reset() {
 
         @Override
         protected void subscribeActual(Observer observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             observer.onComplete();
         }
     }
@@ -1163,7 +1163,7 @@ static final class BadObservableDoubleOnX extends ConnectableObservable
         @Override
         public void connect(Consumer connection) {
             try {
-                connection.accept(Disposables.empty());
+                connection.accept(Disposable.empty());
             } catch (Throwable ex) {
                 throw ExceptionHelper.wrapOrThrow(ex);
             }
@@ -1176,8 +1176,8 @@ public void reset() {
 
         @Override
         protected void subscribeActual(Observer observer) {
-            observer.onSubscribe(Disposables.empty());
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
+            observer.onSubscribe(Disposable.empty());
             observer.onComplete();
             observer.onComplete();
             observer.onError(new TestException());
@@ -1341,7 +1341,7 @@ public void timeoutResetsSource() {
         ObservableRefCount o = (ObservableRefCount)tco.refCount();
 
         RefConnection rc = new RefConnection(o);
-        rc.set(Disposables.empty());
+        rc.set(Disposable.empty());
         o.connection = rc;
 
         o.timeout(rc);
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRepeatTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRepeatTest.java
index 55906d1214..f7b1d93b0b 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRepeatTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRepeatTest.java
@@ -74,7 +74,7 @@ public void repeatTakeWithSubscribeOn() throws InterruptedException {
 
             @Override
             public void subscribe(Observer sub) {
-                sub.onSubscribe(Disposables.empty());
+                sub.onSubscribe(Disposable.empty());
                 counter.incrementAndGet();
                 sub.onNext(1);
                 sub.onNext(2);
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableReplayEagerTruncateTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableReplayEagerTruncateTest.java
index e1c0bf6f8c..ba3a7d6974 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableReplayEagerTruncateTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableReplayEagerTruncateTest.java
@@ -892,7 +892,7 @@ public void cache() throws InterruptedException {
 
             @Override
             public void subscribe(final Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 new Thread(new Runnable() {
 
                     @Override
@@ -1028,7 +1028,7 @@ public void noMissingBackpressureException() {
         Observable firehose = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer t) {
-                t.onSubscribe(Disposables.empty());
+                t.onSubscribe(Disposable.empty());
                 for (int i = 0; i < m; i++) {
                     t.onNext(i);
                 }
@@ -1232,7 +1232,7 @@ public void badSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException("First"));
                     observer.onNext(1);
                     observer.onError(new TestException("Second"));
@@ -1438,7 +1438,7 @@ protected void subscribeActual(Observer observer) {
         .connect()
         .dispose();
 
-        Disposable bs = Disposables.empty();
+        Disposable bs = Disposable.empty();
 
         sub[0].onSubscribe(bs);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableReplayTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableReplayTest.java
index 5ef40f340c..e55d5ff716 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableReplayTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableReplayTest.java
@@ -892,7 +892,7 @@ public void cache() throws InterruptedException {
 
             @Override
             public void subscribe(final Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 new Thread(new Runnable() {
 
                     @Override
@@ -1028,7 +1028,7 @@ public void noMissingBackpressureException() {
         Observable firehose = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer t) {
-                t.onSubscribe(Disposables.empty());
+                t.onSubscribe(Disposable.empty());
                 for (int i = 0; i < m; i++) {
                     t.onNext(i);
                 }
@@ -1232,7 +1232,7 @@ public void badSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException("First"));
                     observer.onNext(1);
                     observer.onError(new TestException("Second"));
@@ -1438,7 +1438,7 @@ protected void subscribeActual(Observer observer) {
         .connect()
         .dispose();
 
-        Disposable bs = Disposables.empty();
+        Disposable bs = Disposable.empty();
 
         sub[0].onSubscribe(bs);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableResourceWrapperTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableResourceWrapperTest.java
index 9143762a5a..d5a70e0e47 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableResourceWrapperTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableResourceWrapperTest.java
@@ -30,7 +30,7 @@ public void disposed() {
         TestObserver to = new TestObserver();
         ObserverResourceWrapper orw = new ObserverResourceWrapper(to);
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         orw.onSubscribe(d);
 
@@ -54,8 +54,8 @@ public void onErrorDisposes() {
         TestObserver to = new TestObserver();
         ObserverResourceWrapper orw = new ObserverResourceWrapper(to);
 
-        Disposable d = Disposables.empty();
-        Disposable d1 = Disposables.empty();
+        Disposable d = Disposable.empty();
+        Disposable d1 = Disposable.empty();
 
         orw.setResource(d1);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRetryTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRetryTest.java
index 26377c742c..82d96dc5d7 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRetryTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRetryTest.java
@@ -52,7 +52,7 @@ public void iterativeBackoff() {
 
             @Override
             public void subscribe(Observer t1) {
-                t1.onSubscribe(Disposables.empty());
+                t1.onSubscribe(Disposable.empty());
                 System.out.println(count.get() + " @ " + String.valueOf(last - System.currentTimeMillis()));
                 last = System.currentTimeMillis();
                 if (count.getAndDecrement() == 0) {
@@ -248,7 +248,7 @@ public void singleSubscriptionOnFirst() throws Exception {
         ObservableSource onSubscribe = new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 final int emit = inc.incrementAndGet();
                 observer.onNext(emit);
                 observer.onComplete();
@@ -397,7 +397,7 @@ public static class FuncWithErrors implements ObservableSource {
 
         @Override
         public void subscribe(final Observer o) {
-            o.onSubscribe(Disposables.empty());
+            o.onSubscribe(Disposable.empty());
             o.onNext("beginningEveryTime");
             int i = count.getAndIncrement();
             if (i < numFailures) {
@@ -432,7 +432,7 @@ public void retryAllowsSubscriptionAfterAllSubscriptionsUnsubscribed() throws In
             @Override
             public void subscribe(Observer observer) {
                 subsCount.incrementAndGet();
-                observer.onSubscribe(Disposables.fromRunnable(new Runnable() {
+                observer.onSubscribe(Disposable.fromRunnable(new Runnable() {
                     @Override
                     public void run() {
                             subsCount.decrementAndGet();
@@ -491,7 +491,7 @@ public void sourceObservableRetry1() throws InterruptedException {
         ObservableSource onSubscribe = new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 subsCount.incrementAndGet();
                 observer.onError(new RuntimeException("failed"));
             }
@@ -510,7 +510,7 @@ public void sourceObservableRetry0() throws InterruptedException {
         ObservableSource onSubscribe = new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 subsCount.incrementAndGet();
                 observer.onError(new RuntimeException("failed"));
             }
@@ -539,7 +539,7 @@ static final class SlowObservable implements ObservableSource {
         @Override
         public void subscribe(final Observer observer) {
             final AtomicBoolean terminate = new AtomicBoolean(false);
-            observer.onSubscribe(Disposables.fromRunnable(new Runnable() {
+            observer.onSubscribe(Disposable.fromRunnable(new Runnable() {
                 @Override
                 public void run() {
                         terminate.set(true);
@@ -840,7 +840,7 @@ public void issue1900SourceNotSupportingBackpressure() {
 
             @Override
             public void subscribe(Observer o) {
-                o.onSubscribe(Disposables.empty());
+                o.onSubscribe(Disposable.empty());
                 for (int i = 0; i < NUM_MSG; i++) {
                     o.onNext("msg:" + count.incrementAndGet());
                 }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRetryWithPredicateTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRetryWithPredicateTest.java
index 38f293cb4a..d7d20c1347 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRetryWithPredicateTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRetryWithPredicateTest.java
@@ -77,7 +77,7 @@ public void retryTwice() {
             int count;
             @Override
             public void subscribe(Observer t1) {
-                t1.onSubscribe(Disposables.empty());
+                t1.onSubscribe(Disposable.empty());
                 count++;
                 t1.onNext(0);
                 t1.onNext(1);
@@ -112,7 +112,7 @@ public void retryTwiceAndGiveUp() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer t1) {
-                t1.onSubscribe(Disposables.empty());
+                t1.onSubscribe(Disposable.empty());
                 t1.onNext(0);
                 t1.onNext(1);
                 t1.onError(new TestException());
@@ -141,7 +141,7 @@ public void retryOnSpecificException() {
             int count;
             @Override
             public void subscribe(Observer t1) {
-                t1.onSubscribe(Disposables.empty());
+                t1.onSubscribe(Disposable.empty());
                 count++;
                 t1.onNext(0);
                 t1.onNext(1);
@@ -178,7 +178,7 @@ public void retryOnSpecificExceptionAndNotOther() {
             int count;
             @Override
             public void subscribe(Observer t1) {
-                t1.onSubscribe(Disposables.empty());
+                t1.onSubscribe(Disposable.empty());
                 count++;
                 t1.onNext(0);
                 t1.onNext(1);
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSampleTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSampleTest.java
index 5335a75475..0861fc2596 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSampleTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSampleTest.java
@@ -50,7 +50,7 @@ public void sample() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(final Observer observer1) {
-                observer1.onSubscribe(Disposables.empty());
+                observer1.onSubscribe(Disposable.empty());
                 innerScheduler.schedule(new Runnable() {
                     @Override
                     public void run() {
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableScanTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableScanTest.java
index 5a7d312ede..590273ce60 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableScanTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableScanTest.java
@@ -321,7 +321,7 @@ public void accept(Throwable t) throws Exception {
             Observable.unsafeCreate(new ObservableSource() {
                 @Override
                 public void subscribe(Observer o) {
-                    Disposable d = Disposables.empty();
+                    Disposable d = Disposable.empty();
                     o.onSubscribe(d);
                     o.onNext(1);
                     o.onNext(2);
@@ -346,7 +346,7 @@ public void scanFunctionThrowsAndUpstreamCompletesDoesNotResultInTwoTerminalEven
         Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer o) {
-                Disposable d = Disposables.empty();
+                Disposable d = Disposable.empty();
                 o.onSubscribe(d);
                 o.onNext(1);
                 o.onNext(2);
@@ -369,7 +369,7 @@ public void scanFunctionThrowsAndUpstreamEmitsOnNextResultsInScanFunctionBeingCa
         Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer o) {
-                Disposable d = Disposables.empty();
+                Disposable d = Disposable.empty();
                 o.onSubscribe(d);
                 o.onNext(1);
                 o.onNext(2);
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSerializeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSerializeTest.java
index b0023e2989..2a2b7dff0d 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSerializeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSerializeTest.java
@@ -20,10 +20,10 @@
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.*;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.observers.DefaultObserver;
 import io.reactivex.rxjava3.testsupport.TestHelper;
 
@@ -221,7 +221,7 @@ static class TestSingleThreadedObservable implements ObservableSource {
 
         @Override
         public void subscribe(final Observer observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             System.out.println("TestSingleThreadedObservable subscribed to ...");
             t = new Thread(new Runnable() {
 
@@ -272,7 +272,7 @@ private static class TestMultiThreadedObservable implements ObservableSource observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             System.out.println("TestMultiThreadedObservable subscribed to ...");
             final NullPointerException npe = new NullPointerException();
             t = new Thread(new Runnable() {
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSubscribeOnTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSubscribeOnTest.java
index 8d2a1706ba..26ffe95a71 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSubscribeOnTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSubscribeOnTest.java
@@ -43,7 +43,7 @@ public void issue813() throws InterruptedException {
             @Override
             public void subscribe(
                     final Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 scheduled.countDown();
                 try {
                     try {
@@ -79,7 +79,7 @@ public void onError() {
 
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onError(new RuntimeException("fail"));
             }
 
@@ -153,7 +153,7 @@ public void unsubscribeInfiniteStream() throws InterruptedException {
 
             @Override
             public void subscribe(Observer sub) {
-                Disposable d = Disposables.empty();
+                Disposable d = Disposable.empty();
                 sub.onSubscribe(d);
                 for (int i = 1; !d.isDisposed(); i++) {
                     count.incrementAndGet();
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSwitchIfEmptyTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSwitchIfEmptyTest.java
index 00948a6e7f..34e24d81cb 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSwitchIfEmptyTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSwitchIfEmptyTest.java
@@ -54,7 +54,7 @@ public void switchWhenEmpty() throws Exception {
     @Test
     public void switchTriggerUnsubscribe() throws Exception {
 
-        final Disposable d = Disposables.empty();
+        final Disposable d = Disposable.empty();
 
         Observable withProducer = Observable.unsafeCreate(new ObservableSource() {
             @Override
@@ -96,7 +96,7 @@ public void onNext(Long aLong) {
 
     @Test
     public void switchShouldTriggerUnsubscribe() {
-        final Disposable d = Disposables.empty();
+        final Disposable d = Disposable.empty();
 
         Observable.unsafeCreate(new ObservableSource() {
             @Override
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSwitchTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSwitchTest.java
index dadabeeea3..5eb40104fc 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSwitchTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableSwitchTest.java
@@ -57,11 +57,11 @@ public void switchWhenOuterCompleteBeforeInner() {
         Observable> source = Observable.unsafeCreate(new ObservableSource>() {
             @Override
             public void subscribe(Observer> outerObserver) {
-                outerObserver.onSubscribe(Disposables.empty());
+                outerObserver.onSubscribe(Disposable.empty());
                 publishNext(outerObserver, 50, Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(Observer innerObserver) {
-                        innerObserver.onSubscribe(Disposables.empty());
+                        innerObserver.onSubscribe(Disposable.empty());
                         publishNext(innerObserver, 70, "one");
                         publishNext(innerObserver, 100, "two");
                         publishCompleted(innerObserver, 200);
@@ -86,11 +86,11 @@ public void switchWhenInnerCompleteBeforeOuter() {
         Observable> source = Observable.unsafeCreate(new ObservableSource>() {
             @Override
             public void subscribe(Observer> outerObserver) {
-                outerObserver.onSubscribe(Disposables.empty());
+                outerObserver.onSubscribe(Disposable.empty());
                 publishNext(outerObserver, 10, Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(Observer innerObserver) {
-                        innerObserver.onSubscribe(Disposables.empty());
+                        innerObserver.onSubscribe(Disposable.empty());
                         publishNext(innerObserver, 0, "one");
                         publishNext(innerObserver, 10, "two");
                         publishCompleted(innerObserver, 20);
@@ -100,7 +100,7 @@ public void subscribe(Observer innerObserver) {
                 publishNext(outerObserver, 100, Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(Observer innerObserver) {
-                        innerObserver.onSubscribe(Disposables.empty());
+                        innerObserver.onSubscribe(Disposable.empty());
                         publishNext(innerObserver, 0, "three");
                         publishNext(innerObserver, 10, "four");
                         publishCompleted(innerObserver, 20);
@@ -132,11 +132,11 @@ public void switchWithComplete() {
         Observable> source = Observable.unsafeCreate(new ObservableSource>() {
             @Override
             public void subscribe(Observer> outerObserver) {
-                outerObserver.onSubscribe(Disposables.empty());
+                outerObserver.onSubscribe(Disposable.empty());
                 publishNext(outerObserver, 50, Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(final Observer innerObserver) {
-                        innerObserver.onSubscribe(Disposables.empty());
+                        innerObserver.onSubscribe(Disposable.empty());
                         publishNext(innerObserver, 60, "one");
                         publishNext(innerObserver, 100, "two");
                     }
@@ -145,7 +145,7 @@ public void subscribe(final Observer innerObserver) {
                 publishNext(outerObserver, 200, Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(final Observer innerObserver) {
-                        innerObserver.onSubscribe(Disposables.empty());
+                        innerObserver.onSubscribe(Disposable.empty());
                         publishNext(innerObserver, 0, "three");
                         publishNext(innerObserver, 100, "four");
                     }
@@ -191,11 +191,11 @@ public void switchWithError() {
         Observable> source = Observable.unsafeCreate(new ObservableSource>() {
             @Override
             public void subscribe(Observer> outerObserver) {
-                outerObserver.onSubscribe(Disposables.empty());
+                outerObserver.onSubscribe(Disposable.empty());
                 publishNext(outerObserver, 50, Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(final Observer innerObserver) {
-                        innerObserver.onSubscribe(Disposables.empty());
+                        innerObserver.onSubscribe(Disposable.empty());
                         publishNext(innerObserver, 50, "one");
                         publishNext(innerObserver, 100, "two");
                     }
@@ -204,7 +204,7 @@ public void subscribe(final Observer innerObserver) {
                 publishNext(outerObserver, 200, Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(Observer innerObserver) {
-                        innerObserver.onSubscribe(Disposables.empty());
+                        innerObserver.onSubscribe(Disposable.empty());
                         publishNext(innerObserver, 0, "three");
                         publishNext(innerObserver, 100, "four");
                     }
@@ -250,11 +250,11 @@ public void switchWithSubsequenceComplete() {
         Observable> source = Observable.unsafeCreate(new ObservableSource>() {
             @Override
             public void subscribe(Observer> outerObserver) {
-                outerObserver.onSubscribe(Disposables.empty());
+                outerObserver.onSubscribe(Disposable.empty());
                 publishNext(outerObserver, 50, Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(Observer innerObserver) {
-                        innerObserver.onSubscribe(Disposables.empty());
+                        innerObserver.onSubscribe(Disposable.empty());
                         publishNext(innerObserver, 50, "one");
                         publishNext(innerObserver, 100, "two");
                     }
@@ -263,7 +263,7 @@ public void subscribe(Observer innerObserver) {
                 publishNext(outerObserver, 130, Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(Observer innerObserver) {
-                        innerObserver.onSubscribe(Disposables.empty());
+                        innerObserver.onSubscribe(Disposable.empty());
                         publishCompleted(innerObserver, 0);
                     }
                 }));
@@ -271,7 +271,7 @@ public void subscribe(Observer innerObserver) {
                 publishNext(outerObserver, 150, Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(Observer innerObserver) {
-                        innerObserver.onSubscribe(Disposables.empty());
+                        innerObserver.onSubscribe(Disposable.empty());
                         publishNext(innerObserver, 50, "three");
                     }
                 }));
@@ -304,11 +304,11 @@ public void switchWithSubsequenceError() {
         Observable> source = Observable.unsafeCreate(new ObservableSource>() {
             @Override
             public void subscribe(Observer> observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 publishNext(observer, 50, Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(Observer observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
                         publishNext(observer, 50, "one");
                         publishNext(observer, 100, "two");
                     }
@@ -317,7 +317,7 @@ public void subscribe(Observer observer) {
                 publishNext(observer, 130, Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(Observer observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
                         publishError(observer, 0, new TestException());
                     }
                 }));
@@ -325,7 +325,7 @@ public void subscribe(Observer observer) {
                 publishNext(observer, 150, Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(Observer observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
                         publishNext(observer, 50, "three");
                     }
                 }));
@@ -387,11 +387,11 @@ public void switchIssue737() {
         Observable> source = Observable.unsafeCreate(new ObservableSource>() {
             @Override
             public void subscribe(Observer> outerObserver) {
-                outerObserver.onSubscribe(Disposables.empty());
+                outerObserver.onSubscribe(Disposable.empty());
                 publishNext(outerObserver, 0, Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(Observer innerObserver) {
-                        innerObserver.onSubscribe(Disposables.empty());
+                        innerObserver.onSubscribe(Disposable.empty());
                         publishNext(innerObserver, 10, "1-one");
                         publishNext(innerObserver, 20, "1-two");
                         // The following events will be ignored
@@ -402,7 +402,7 @@ public void subscribe(Observer innerObserver) {
                 publishNext(outerObserver, 25, Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(Observer innerObserver) {
-                        innerObserver.onSubscribe(Disposables.empty());
+                        innerObserver.onSubscribe(Disposable.empty());
                         publishNext(innerObserver, 10, "2-one");
                         publishNext(innerObserver, 20, "2-two");
                         publishNext(innerObserver, 30, "2-three");
@@ -435,7 +435,7 @@ public void unsubscribe() {
                 Observable.unsafeCreate(new ObservableSource>() {
                     @Override
                     public void subscribe(final Observer> observer) {
-                        Disposable bs = Disposables.empty();
+                        Disposable bs = Disposable.empty();
                         observer.onSubscribe(bs);
                         observer.onNext(Observable.just(1));
                         isUnsubscribed.set(bs.isDisposed());
@@ -666,7 +666,7 @@ public SingleSource apply(Object v) throws Exception {
                 return new SingleSource() {
                     @Override
                     public void subscribe(SingleObserver observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
                         observer.onSuccess(1);
                     }
                 };
@@ -870,7 +870,7 @@ public void badMainSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onComplete();
                     observer.onError(new TestException());
                     observer.onComplete();
@@ -910,7 +910,7 @@ public void badInnerSource() {
             .switchMap(Functions.justFunction(new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException());
                     observer.onComplete();
                     observer.onError(new TestException());
@@ -1023,10 +1023,10 @@ public ObservableSource apply(Integer v) throws Exception {
                 })
                 .test();
 
-                obs1.get().onSubscribe(Disposables.empty());
+                obs1.get().onSubscribe(Disposable.empty());
                 obs1.get().onNext(1);
 
-                obs2.get().onSubscribe(Disposables.empty());
+                obs2.get().onSubscribe(Disposable.empty());
 
                 final TestException ex1 = new TestException();
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTakeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTakeTest.java
index 73e2cc33c7..2225f3022b 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTakeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTakeTest.java
@@ -115,7 +115,7 @@ public void takeDoesntLeakErrors() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onNext("one");
                 observer.onError(new Throwable("test failed"));
             }
@@ -181,7 +181,7 @@ public void multiTake() {
 
             @Override
             public void subscribe(Observer observer) {
-                Disposable bs = Disposables.empty();
+                Disposable bs = Disposable.empty();
                 observer.onSubscribe(bs);
                 for (int i = 0; !bs.isDisposed(); i++) {
                     System.out.println("Emit: " + i);
@@ -214,7 +214,7 @@ static class TestObservableFunc implements ObservableSource {
 
         @Override
         public void subscribe(final Observer observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             System.out.println("TestObservable subscribed to ...");
             t = new Thread(new Runnable() {
 
@@ -243,7 +243,7 @@ public void run() {
 
         @Override
         public void subscribe(Observer op) {
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
             op.onSubscribe(d);
             long l = 1;
             while (!d.isDisposed()) {
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTakeUntilPredicateTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTakeUntilPredicateTest.java
index b197d0bd89..9566d64c9a 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTakeUntilPredicateTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTakeUntilPredicateTest.java
@@ -18,10 +18,10 @@
 
 import java.util.List;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -180,7 +180,7 @@ public void badSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onComplete();
                     observer.onNext(1);
                     observer.onError(new TestException());
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTakeWhileTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTakeWhileTest.java
index 7c30166bb3..b348cda2ce 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTakeWhileTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTakeWhileTest.java
@@ -104,7 +104,7 @@ public void takeWhileDoesntLeakErrors() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onNext("one");
                 observer.onError(new Throwable("test failed"));
             }
@@ -271,7 +271,7 @@ public void badSource() {
         new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onComplete();
                 observer.onComplete();
             }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableThrottleFirstTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableThrottleFirstTest.java
index 416c248f6a..c8eedc72bd 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableThrottleFirstTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableThrottleFirstTest.java
@@ -19,11 +19,11 @@
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.*;
 import org.mockito.InOrder;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.plugins.RxJavaPlugins;
 import io.reactivex.rxjava3.schedulers.TestScheduler;
@@ -48,7 +48,7 @@ public void throttlingWithCompleted() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer innerObserver) {
-                innerObserver.onSubscribe(Disposables.empty());
+                innerObserver.onSubscribe(Disposable.empty());
                 publishNext(innerObserver, 100, "one");    // publish as it's first
                 publishNext(innerObserver, 300, "two");    // skip as it's last within the first 400
                 publishNext(innerObserver, 900, "three");   // publish
@@ -76,7 +76,7 @@ public void throttlingWithError() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer innerObserver) {
-                innerObserver.onSubscribe(Disposables.empty());
+                innerObserver.onSubscribe(Disposable.empty());
                 Exception error = new TestException();
                 publishNext(innerObserver, 100, "one");    // Should be published since it is first
                 publishNext(innerObserver, 200, "two");    // Should be skipped since onError will arrive before the timeout expires
@@ -173,7 +173,7 @@ public void badSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onNext(1);
                     observer.onNext(2);
                     observer.onComplete();
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTimeoutTests.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTimeoutTests.java
index f1bb9e7bfe..f0001ab276 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTimeoutTests.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTimeoutTests.java
@@ -241,7 +241,7 @@ public void run() {
 
                     @Override
                     public void subscribe(Observer observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
                         try {
                             timeoutSetuped.countDown();
                             exit.await();
@@ -360,7 +360,7 @@ public void badSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
 
                     observer.onNext(1);
                     observer.onComplete();
@@ -386,7 +386,7 @@ public void badSourceOther() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
 
                     observer.onNext(1);
                     observer.onComplete();
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTimeoutWithSelectorTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTimeoutWithSelectorTest.java
index e590ec1663..9e6540e0b3 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTimeoutWithSelectorTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTimeoutWithSelectorTest.java
@@ -283,7 +283,7 @@ public Observable apply(Integer t1) {
                     return Observable.unsafeCreate(new ObservableSource() {
                         @Override
                         public void subscribe(Observer observer) {
-                            observer.onSubscribe(Disposables.empty());
+                            observer.onSubscribe(Disposable.empty());
                             enteredTimeoutOne.countDown();
                             // force the timeout message be sent after observer.onNext(2)
                             while (true) {
@@ -436,7 +436,7 @@ public void badInnerSource() {
             .timeout(Functions.justFunction(new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException("First"));
                     observer.onNext(2);
                     observer.onError(new TestException("Second"));
@@ -465,7 +465,7 @@ public void badInnerSourceOther() {
             .timeout(Functions.justFunction(new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException("First"));
                     observer.onNext(2);
                     observer.onError(new TestException("Second"));
@@ -497,7 +497,7 @@ public void badSourceTimeout() {
         new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onNext(1);
                 observer.onNext(2);
                 observer.onError(new TestException("First"));
@@ -564,7 +564,7 @@ public void lateOnTimeoutError() {
                     @Override
                     protected void subscribeActual(
                             Observer observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
                         sub[count++] = observer;
                     }
                 };
@@ -619,7 +619,7 @@ public void lateOnTimeoutFallbackRace() {
                     protected void subscribeActual(
                             Observer observer) {
                         assertFalse(((Disposable)observer).isDisposed());
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
                         sub[count++] = observer;
                     }
                 };
@@ -674,7 +674,7 @@ public void onErrorOnTimeoutRace() {
                     protected void subscribeActual(
                             Observer observer) {
                         assertFalse(((Disposable)observer).isDisposed());
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
                         sub[count++] = observer;
                     }
                 };
@@ -729,7 +729,7 @@ public void onCompleteOnTimeoutRace() {
                     protected void subscribeActual(
                             Observer observer) {
                         assertFalse(((Disposable)observer).isDisposed());
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
                         sub[count++] = observer;
                     }
                 };
@@ -782,7 +782,7 @@ public void onCompleteOnTimeoutRaceFallback() {
                     protected void subscribeActual(
                             Observer observer) {
                         assertFalse(((Disposable)observer).isDisposed());
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
                         sub[count++] = observer;
                     }
                 };
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTimerTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTimerTest.java
index ae1d856b0b..d77ee456db 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTimerTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTimerTest.java
@@ -21,11 +21,11 @@
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.*;
 import org.mockito.*;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.Function;
 import io.reactivex.rxjava3.internal.operators.observable.ObservableTimer.TimerObserver;
@@ -349,7 +349,7 @@ public Long apply(Long v) throws Exception {
     @Test
     public void cancelledAndRun() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
         TimerObserver tm = new TimerObserver(to);
 
         tm.dispose();
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableUnsubscribeOnTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableUnsubscribeOnTest.java
index ce8eee9b50..8a4ac039b7 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableUnsubscribeOnTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableUnsubscribeOnTest.java
@@ -248,7 +248,7 @@ public void signalAfterDispose() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onNext(1);
                     observer.onNext(2);
                     observer.onError(new TestException());
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableUsingTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableUsingTest.java
index 62e8986292..6312ed7d42 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableUsingTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableUsingTest.java
@@ -209,7 +209,7 @@ private void performTestUsingWithObservableFactoryError(boolean disposeEagerly)
         Supplier resourceFactory = new Supplier() {
             @Override
             public Disposable get() {
-                return Disposables.fromRunnable(unsubscribe);
+                return Disposable.fromRunnable(unsubscribe);
             }
         };
 
@@ -538,7 +538,7 @@ public void eagerDisposedOnComplete() {
         Observable.using(Functions.justSupplier(1), Functions.justFunction(new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 to.dispose();
                 observer.onComplete();
             }
@@ -553,7 +553,7 @@ public void eagerDisposedOnError() {
         Observable.using(Functions.justSupplier(1), Functions.justFunction(new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 to.dispose();
                 observer.onError(new TestException());
             }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWindowWithObservableTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWindowWithObservableTest.java
index e6804ddcab..63bb37eafa 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWindowWithObservableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWindowWithObservableTest.java
@@ -374,7 +374,7 @@ public void mainAndBoundaryBothError() {
             .window(new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     ref.set(observer);
                 }
             })
@@ -413,14 +413,14 @@ public void mainCompleteBoundaryErrorRace() {
                 TestObserverEx> to = new Observable() {
                     @Override
                     protected void subscribeActual(Observer observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
                         refMain.set(observer);
                     }
                 }
                 .window(new Observable() {
                     @Override
                     protected void subscribeActual(Observer observer) {
-                        observer.onSubscribe(Disposables.empty());
+                        observer.onSubscribe(Disposable.empty());
                         ref.set(observer);
                     }
                 })
@@ -463,14 +463,14 @@ public void mainNextBoundaryNextRace() {
             TestObserver> to = new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     refMain.set(observer);
                 }
             }
             .window(new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     ref.set(observer);
                 }
             })
@@ -506,14 +506,14 @@ public void takeOneAnotherBoundary() {
         TestObserverEx> to = new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 refMain.set(observer);
             }
         }
         .window(new Observable() {
             @Override
             protected void subscribeActual(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 ref.set(observer);
             }
         })
@@ -538,7 +538,7 @@ public void disposeMainBoundaryCompleteRace() {
             final TestObserver> to = new Observable() {
                  @Override
                  protected void subscribeActual(Observer observer) {
-                     observer.onSubscribe(Disposables.empty());
+                     observer.onSubscribe(Disposable.empty());
                      refMain.set(observer);
                  }
              }
@@ -596,7 +596,7 @@ public void disposeMainBoundaryErrorRace() {
            final TestObserver> to = new Observable() {
                @Override
                protected void subscribeActual(Observer observer) {
-                   observer.onSubscribe(Disposables.empty());
+                   observer.onSubscribe(Disposable.empty());
                    refMain.set(observer);
                }
            }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWindowWithSizeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWindowWithSizeTest.java
index b7ef436399..274c9712a7 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWindowWithSizeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWindowWithSizeTest.java
@@ -219,7 +219,7 @@ public static Observable hotStream() {
         return Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                Disposable d = Disposables.empty();
+                Disposable d = Disposable.empty();
                 observer.onSubscribe(d);
                 while (!d.isDisposed()) {
                     // burst some number of items
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWindowWithStartEndObservableTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWindowWithStartEndObservableTest.java
index da02116cd9..d3466c7eb4 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWindowWithStartEndObservableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWindowWithStartEndObservableTest.java
@@ -19,12 +19,12 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.*;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.*;
 
 import io.reactivex.rxjava3.core.*;
 import io.reactivex.rxjava3.core.Observable;
 import io.reactivex.rxjava3.core.Observer;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -53,7 +53,7 @@ public void observableBasedOpenerAndCloser() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer innerObserver) {
-                innerObserver.onSubscribe(Disposables.empty());
+                innerObserver.onSubscribe(Disposable.empty());
                 push(innerObserver, "one", 10);
                 push(innerObserver, "two", 60);
                 push(innerObserver, "three", 110);
@@ -66,7 +66,7 @@ public void subscribe(Observer innerObserver) {
         Observable openings = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer innerObserver) {
-                innerObserver.onSubscribe(Disposables.empty());
+                innerObserver.onSubscribe(Disposable.empty());
                 push(innerObserver, new Object(), 50);
                 push(innerObserver, new Object(), 200);
                 complete(innerObserver, 250);
@@ -79,7 +79,7 @@ public Observable apply(Object opening) {
                 return Observable.unsafeCreate(new ObservableSource() {
                     @Override
                     public void subscribe(Observer innerObserver) {
-                        innerObserver.onSubscribe(Disposables.empty());
+                        innerObserver.onSubscribe(Disposable.empty());
                         push(innerObserver, new Object(), 100);
                         complete(innerObserver, 101);
                     }
@@ -371,7 +371,7 @@ public Observable apply(Integer f) throws Exception {
                         @Override
                         protected void subscribeActual(
                                 Observer observer) {
-                            observer.onSubscribe(Disposables.empty());
+                            observer.onSubscribe(Disposable.empty());
                             observer.onNext(1);
                             observer.onNext(2);
                             observer.onError(new TestException());
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWindowWithTimeTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWindowWithTimeTest.java
index 8eaebf5991..51591516a6 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWindowWithTimeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWindowWithTimeTest.java
@@ -19,12 +19,12 @@
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.*;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.*;
 
 import io.reactivex.rxjava3.core.*;
 import io.reactivex.rxjava3.core.Observable;
 import io.reactivex.rxjava3.core.Observer;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -52,7 +52,7 @@ public void timedAndCount() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 push(observer, "one", 10);
                 push(observer, "two", 90);
                 push(observer, "three", 110);
@@ -88,7 +88,7 @@ public void timed() {
         Observable source = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 push(observer, "one", 98);
                 push(observer, "two", 99);
                 push(observer, "three", 99); // FIXME happens after the window is open
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWithLatestFromTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWithLatestFromTest.java
index f87491e0e0..00b4e73f18 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWithLatestFromTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableWithLatestFromTest.java
@@ -19,13 +19,13 @@
 
 import java.util.*;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 import org.mockito.InOrder;
 
 import io.reactivex.rxjava3.core.Observable;
 import io.reactivex.rxjava3.core.Observer;
 import io.reactivex.rxjava3.core.RxJavaTest;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.functions.Functions;
@@ -545,7 +545,7 @@ public void manyErrors() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onError(new TestException("First"));
                     observer.onNext(1);
                     observer.onError(new TestException("Second"));
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableZipIterableTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableZipIterableTest.java
index 53fd62d50d..a4ce20c33c 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableZipIterableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableZipIterableTest.java
@@ -20,13 +20,13 @@
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.*;
 import org.mockito.InOrder;
 
 import io.reactivex.rxjava3.core.*;
 import io.reactivex.rxjava3.core.Observable;
 import io.reactivex.rxjava3.core.Observer;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.util.CrashingIterable;
@@ -409,7 +409,7 @@ public void badSource() {
             new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onNext(1);
                     observer.onComplete();
                     observer.onNext(2);
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableZipTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableZipTest.java
index e185dea68d..b52b90183d 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableZipTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableZipTest.java
@@ -624,7 +624,7 @@ private static class TestObservable implements ObservableSource {
         public void subscribe(Observer observer) {
             // just store the variable where it can be accessed so we can manually trigger it
             this.observer = observer;
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
         }
 
     }
@@ -1024,7 +1024,7 @@ Observable OBSERVABLE_OF_5_INTEGERS(final AtomicInteger numEmitted) {
 
             @Override
             public void subscribe(final Observer o) {
-                Disposable d = Disposables.empty();
+                Disposable d = Disposable.empty();
                 o.onSubscribe(d);
                 for (int i = 1; i <= 5; i++) {
                     if (d.isDisposed()) {
@@ -1045,7 +1045,7 @@ Observable ASYNC_OBSERVABLE_OF_INFINITE_INTEGERS(final CountDownLatch l
 
             @Override
             public void subscribe(final Observer o) {
-                final Disposable d = Disposables.empty();
+                final Disposable d = Disposable.empty();
                 o.onSubscribe(d);
                 Thread t = new Thread(new Runnable() {
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleCreateTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleCreateTest.java
index 98c0a67903..489744b708 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleCreateTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleCreateTest.java
@@ -36,7 +36,7 @@ public void nullArgument() {
 
     @Test
     public void basic() {
-        final Disposable d = Disposables.empty();
+        final Disposable d = Disposable.empty();
 
         Single.create(new SingleOnSubscribe() {
             @Override
@@ -57,8 +57,8 @@ public void subscribe(SingleEmitter e) throws Exception {
 
     @Test
     public void basicWithCancellable() {
-        final Disposable d1 = Disposables.empty();
-        final Disposable d2 = Disposables.empty();
+        final Disposable d1 = Disposable.empty();
+        final Disposable d2 = Disposable.empty();
 
         Single.create(new SingleOnSubscribe() {
             @Override
@@ -86,7 +86,7 @@ public void cancel() throws Exception {
 
     @Test
     public void basicWithError() {
-        final Disposable d = Disposables.empty();
+        final Disposable d = Disposable.empty();
 
         Single.create(new SingleOnSubscribe() {
             @Override
@@ -193,7 +193,7 @@ public void createConsumerThrowsResource() {
         Single.create(new SingleOnSubscribe() {
             @Override
             public void subscribe(SingleEmitter s) throws Exception {
-                Disposable d = Disposables.empty();
+                Disposable d = Disposable.empty();
                 s.setDisposable(d);
                 try {
                     s.onSuccess(1);
@@ -257,7 +257,7 @@ public void createConsumerThrowsResourceOnError() {
         Single.create(new SingleOnSubscribe() {
             @Override
             public void subscribe(SingleEmitter s) throws Exception {
-                Disposable d = Disposables.empty();
+                Disposable d = Disposable.empty();
                 s.setDisposable(d);
                 try {
                     s.onError(new IOException());
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleDelayTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleDelayTest.java
index 4f97e5c6bf..1eaf426511 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleDelayTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleDelayTest.java
@@ -19,11 +19,11 @@
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.AtomicReference;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 import org.reactivestreams.Subscriber;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.subscriptions.BooleanSubscription;
@@ -215,7 +215,7 @@ public void withObservableError2() {
             .delaySubscription(new Observable() {
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     observer.onNext(1);
                     observer.onError(new TestException());
                 }
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleDetachTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleDetachTest.java
index 1b7f5e7a34..d582339cd0 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleDetachTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleDetachTest.java
@@ -64,7 +64,7 @@ public void onSuccess() {
 
     @Test
     public void cancelDetaches() throws Exception {
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         final WeakReference wr = new WeakReference(d);
 
         TestObserver to = new Single() {
@@ -90,7 +90,7 @@ protected void subscribeActual(SingleObserver observer) {
 
     @Test
     public void errorDetaches() throws Exception {
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         final WeakReference wr = new WeakReference(d);
 
         TestObserver to = new Single() {
@@ -116,7 +116,7 @@ protected void subscribeActual(SingleObserver observer) {
 
     @Test
     public void successDetaches() throws Exception {
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         final WeakReference wr = new WeakReference(d);
 
         TestObserver to = new Single() {
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleDoOnTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleDoOnTest.java
index 9bea6e178c..cf67202641 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleDoOnTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleDoOnTest.java
@@ -332,7 +332,7 @@ public void accept(Integer v) throws Exception {
     public void onSubscribeCrash() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable bs = Disposables.empty();
+            final Disposable bs = Disposable.empty();
 
             new Single() {
                 @Override
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleMiscTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleMiscTest.java
index bf6e4fa8cf..ca2ccacdc2 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleMiscTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleMiscTest.java
@@ -18,10 +18,10 @@
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.*;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.schedulers.Schedulers;
@@ -51,7 +51,7 @@ public void wrap() {
         Single.wrap(new SingleSource() {
             @Override
             public void subscribe(SingleObserver observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onSuccess(1);
             }
         })
diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleUsingTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleUsingTest.java
index c1463923cf..28f268f423 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleUsingTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/operators/single/SingleUsingTest.java
@@ -101,7 +101,7 @@ public void errorNonEager() {
 
     @Test
     public void eagerMapperThrowsDisposerThrows() {
-        TestObserverEx to = Single.using(Functions.justSupplier(Disposables.empty()), mapperThrows, disposerThrows)
+        TestObserverEx to = Single.using(Functions.justSupplier(Disposable.empty()), mapperThrows, disposerThrows)
         .to(TestHelper.testConsumer())
         .assertFailure(CompositeException.class);
 
@@ -116,7 +116,7 @@ public void noneagerMapperThrowsDisposerThrows() {
         List errors = TestHelper.trackPluginErrors();
 
         try {
-            Single.using(Functions.justSupplier(Disposables.empty()), mapperThrows, disposerThrows, false)
+            Single.using(Functions.justSupplier(Disposable.empty()), mapperThrows, disposerThrows, false)
             .to(TestHelper.testConsumer())
             .assertFailureAndMessage(TestException.class, "Mapper");
 
@@ -128,7 +128,7 @@ public void noneagerMapperThrowsDisposerThrows() {
 
     @Test
     public void resourceDisposedIfMapperCrashes() {
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         Single.using(Functions.justSupplier(d), mapperThrows, disposer)
         .test()
@@ -139,7 +139,7 @@ public void resourceDisposedIfMapperCrashes() {
 
     @Test
     public void resourceDisposedIfMapperCrashesNonEager() {
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         Single.using(Functions.justSupplier(d), mapperThrows, disposer, false)
         .test()
@@ -150,7 +150,7 @@ public void resourceDisposedIfMapperCrashesNonEager() {
 
     @Test
     public void dispose() {
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         Single.using(Functions.justSupplier(d), mapper, disposer, false)
         .test(true);
@@ -160,7 +160,7 @@ public void dispose() {
 
     @Test
     public void disposerThrowsEager() {
-        Single.using(Functions.justSupplier(Disposables.empty()), mapper, disposerThrows)
+        Single.using(Functions.justSupplier(Disposable.empty()), mapper, disposerThrows)
         .test()
         .assertFailure(TestException.class);
     }
@@ -171,7 +171,7 @@ public void disposerThrowsNonEager() {
         List errors = TestHelper.trackPluginErrors();
 
         try {
-            Single.using(Functions.justSupplier(Disposables.empty()), mapper, disposerThrows, false)
+            Single.using(Functions.justSupplier(Disposable.empty()), mapper, disposerThrows, false)
             .test()
             .assertResult(1);
             TestHelper.assertUndeliverable(errors, 0, TestException.class, "Disposer");
@@ -182,7 +182,7 @@ public void disposerThrowsNonEager() {
 
     @Test
     public void errorAndDisposerThrowsEager() {
-        TestObserverEx to = Single.using(Functions.justSupplier(Disposables.empty()),
+        TestObserverEx to = Single.using(Functions.justSupplier(Disposable.empty()),
         new Function>() {
             @Override
             public SingleSource apply(Disposable v) throws Exception {
@@ -202,7 +202,7 @@ public void errorAndDisposerThrowsNonEager() {
         List errors = TestHelper.trackPluginErrors();
 
         try {
-            Single.using(Functions.justSupplier(Disposables.empty()),
+            Single.using(Functions.justSupplier(Disposable.empty()),
             new Function>() {
                 @Override
                 public SingleSource apply(Disposable v) throws Exception {
@@ -222,7 +222,7 @@ public void successDisposeRace() {
         for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
             final PublishProcessor pp = PublishProcessor.create();
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             final TestObserver to = Single.using(Functions.justSupplier(d), new Function>() {
                 @Override
@@ -264,11 +264,11 @@ public SingleSource apply(Integer v) throws Exception {
                     return new Single() {
                         @Override
                         protected void subscribeActual(SingleObserver observer) {
-                            observer.onSubscribe(Disposables.empty());
+                            observer.onSubscribe(Disposable.empty());
 
                             assertFalse(((Disposable)observer).isDisposed());
 
-                            Disposable d = Disposables.empty();
+                            Disposable d = Disposable.empty();
                             observer.onSubscribe(d);
 
                             assertTrue(d.isDisposed());
@@ -297,7 +297,7 @@ public void errorDisposeRace() {
         for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
             final PublishProcessor pp = PublishProcessor.create();
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             final TestObserver to = Single.using(Functions.justSupplier(d), new Function>() {
                 @Override
diff --git a/src/test/java/io/reactivex/rxjava3/internal/schedulers/DisposeOnCancelTest.java b/src/test/java/io/reactivex/rxjava3/internal/schedulers/DisposeOnCancelTest.java
index 19a68d0818..8018806a37 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/schedulers/DisposeOnCancelTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/schedulers/DisposeOnCancelTest.java
@@ -26,7 +26,7 @@ public class DisposeOnCancelTest extends RxJavaTest {
 
     @Test
     public void basicCoverage() throws Exception {
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         DisposeOnCancel doc = new DisposeOnCancel(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/schedulers/SchedulerWhenTest.java b/src/test/java/io/reactivex/rxjava3/internal/schedulers/SchedulerWhenTest.java
index 8225fd4e06..d48228d20c 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/schedulers/SchedulerWhenTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/schedulers/SchedulerWhenTest.java
@@ -268,7 +268,7 @@ public void scheduledActiondisposedSetRace() {
                 @Override
                 protected Disposable callActual(Worker actualWorker,
                         CompletableObserver actionCompletable) {
-                    return Disposables.empty();
+                    return Disposable.empty();
                 }
 
             };
@@ -299,7 +299,7 @@ public void scheduledActionStates() {
             protected Disposable callActual(Worker actualWorker,
                     CompletableObserver actionCompletable) {
                 count.incrementAndGet();
-                return Disposables.empty();
+                return Disposable.empty();
             }
 
         };
@@ -320,7 +320,7 @@ protected Disposable callActual(Worker actualWorker,
         assertEquals(0, count.get());
 
         // should not run when already scheduled
-        sa.set(Disposables.empty());
+        sa.set(Disposable.empty());
 
         sa.call(Schedulers.single().createWorker(), null);
 
@@ -336,7 +336,7 @@ protected Disposable callActual(Worker actualWorker,
                     CompletableObserver actionCompletable) {
                 count.incrementAndGet();
                 dispose();
-                return Disposables.empty();
+                return Disposable.empty();
             }
 
         };
diff --git a/src/test/java/io/reactivex/rxjava3/internal/schedulers/SingleSchedulerTest.java b/src/test/java/io/reactivex/rxjava3/internal/schedulers/SingleSchedulerTest.java
index 82f66ceff6..f6dfe5e455 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/schedulers/SingleSchedulerTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/schedulers/SingleSchedulerTest.java
@@ -43,20 +43,20 @@ public void run() {
         Scheduler s = new SingleScheduler();
         s.shutdown();
 
-        assertEquals(Disposables.disposed(), s.scheduleDirect(r));
+        assertEquals(Disposable.disposed(), s.scheduleDirect(r));
 
-        assertEquals(Disposables.disposed(), s.scheduleDirect(r, 1, TimeUnit.SECONDS));
+        assertEquals(Disposable.disposed(), s.scheduleDirect(r, 1, TimeUnit.SECONDS));
 
-        assertEquals(Disposables.disposed(), s.schedulePeriodicallyDirect(r, 1, 1, TimeUnit.SECONDS));
+        assertEquals(Disposable.disposed(), s.schedulePeriodicallyDirect(r, 1, 1, TimeUnit.SECONDS));
 
         Worker w = s.createWorker();
         ((ScheduledWorker)w).executor.shutdownNow();
 
-        assertEquals(Disposables.disposed(), w.schedule(r));
+        assertEquals(Disposable.disposed(), w.schedule(r));
 
-        assertEquals(Disposables.disposed(), w.schedule(r, 1, TimeUnit.SECONDS));
+        assertEquals(Disposable.disposed(), w.schedule(r, 1, TimeUnit.SECONDS));
 
-        assertEquals(Disposables.disposed(), w.schedulePeriodically(r, 1, 1, TimeUnit.SECONDS));
+        assertEquals(Disposable.disposed(), w.schedulePeriodically(r, 1, 1, TimeUnit.SECONDS));
 
         assertEquals(0, calls[0]);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/subscribers/EmptyComponentTest.java b/src/test/java/io/reactivex/rxjava3/internal/subscribers/EmptyComponentTest.java
index d2d9b91163..60da2b7a29 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/subscribers/EmptyComponentTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/subscribers/EmptyComponentTest.java
@@ -44,7 +44,7 @@ public void normal() {
 
             c.request(-10);
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             c.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/subscribers/QueueDrainSubscriberTest.java b/src/test/java/io/reactivex/rxjava3/internal/subscribers/QueueDrainSubscriberTest.java
index 74bfb0c626..41d3178384 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/subscribers/QueueDrainSubscriberTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/subscribers/QueueDrainSubscriberTest.java
@@ -146,7 +146,7 @@ public boolean accept(Subscriber a, Integer v) {
     @Test
     public void unorderedFastPathNoRequest() {
         TestSubscriber ts = new TestSubscriber(0);
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         QueueDrainSubscriber qd = createUnordered(ts, d);
         ts.onSubscribe(new BooleanSubscription());
 
@@ -160,7 +160,7 @@ public void unorderedFastPathNoRequest() {
     @Test
     public void orderedFastPathNoRequest() {
         TestSubscriber ts = new TestSubscriber(0);
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         QueueDrainSubscriber qd = createOrdered(ts, d);
         ts.onSubscribe(new BooleanSubscription());
 
@@ -174,7 +174,7 @@ public void orderedFastPathNoRequest() {
     @Test
     public void acceptBadRequest() {
         TestSubscriber ts = new TestSubscriber(0);
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         QueueDrainSubscriber qd = createUnordered(ts, d);
         ts.onSubscribe(new BooleanSubscription());
 
@@ -192,7 +192,7 @@ public void acceptBadRequest() {
     @Test
     public void unorderedFastPathRequest1() {
         TestSubscriber ts = new TestSubscriber(1);
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         QueueDrainSubscriber qd = createUnordered(ts, d);
         ts.onSubscribe(new BooleanSubscription());
 
@@ -206,7 +206,7 @@ public void unorderedFastPathRequest1() {
     @Test
     public void orderedFastPathRequest1() {
         TestSubscriber ts = new TestSubscriber(1);
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         QueueDrainSubscriber qd = createOrdered(ts, d);
         ts.onSubscribe(new BooleanSubscription());
 
@@ -220,7 +220,7 @@ public void orderedFastPathRequest1() {
     @Test
     public void unorderedSlowPath() {
         TestSubscriber ts = new TestSubscriber(1);
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         QueueDrainSubscriber qd = createUnordered(ts, d);
         ts.onSubscribe(new BooleanSubscription());
 
@@ -233,7 +233,7 @@ public void unorderedSlowPath() {
     @Test
     public void orderedSlowPath() {
         TestSubscriber ts = new TestSubscriber(1);
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         QueueDrainSubscriber qd = createOrdered(ts, d);
         ts.onSubscribe(new BooleanSubscription());
 
@@ -246,7 +246,7 @@ public void orderedSlowPath() {
     @Test
     public void orderedSlowPathNonEmptyQueue() {
         TestSubscriber ts = new TestSubscriber(1);
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         QueueDrainSubscriber qd = createOrdered(ts, d);
         ts.onSubscribe(new BooleanSubscription());
 
@@ -262,7 +262,7 @@ public void unorderedOnNextRace() {
         for (int i = 0; i < TestHelper.RACE_LONG_LOOPS; i++) {
 
             TestSubscriber ts = new TestSubscriber(1);
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
             final QueueDrainSubscriber qd = createUnordered(ts, d);
             ts.onSubscribe(new BooleanSubscription());
 
@@ -285,7 +285,7 @@ public void orderedOnNextRace() {
         for (int i = 0; i < TestHelper.RACE_LONG_LOOPS; i++) {
 
             TestSubscriber ts = new TestSubscriber(1);
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
             final QueueDrainSubscriber qd = createOrdered(ts, d);
             ts.onSubscribe(new BooleanSubscription());
 
@@ -306,7 +306,7 @@ public void run() {
     @Test
     public void unorderedFastPathReject() {
         TestSubscriber ts = new TestSubscriber(1);
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         QueueDrainSubscriber qd = createUnorderedReject(ts, d);
         ts.onSubscribe(new BooleanSubscription());
 
@@ -322,7 +322,7 @@ public void unorderedFastPathReject() {
     @Test
     public void orderedFastPathReject() {
         TestSubscriber ts = new TestSubscriber(1);
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
         QueueDrainSubscriber qd = createOrderedReject(ts, d);
         ts.onSubscribe(new BooleanSubscription());
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/subscribers/SubscriberResourceWrapperTest.java b/src/test/java/io/reactivex/rxjava3/internal/subscribers/SubscriberResourceWrapperTest.java
index 76ed844842..dc7c82893d 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/subscribers/SubscriberResourceWrapperTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/subscribers/SubscriberResourceWrapperTest.java
@@ -35,7 +35,7 @@ public class SubscriberResourceWrapperTest extends RxJavaTest {
     @Test
     public void cancel() {
         BooleanSubscription bs = new BooleanSubscription();
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         s.setResource(d);
 
@@ -54,7 +54,7 @@ public void cancel() {
     @Test
     public void error() {
         BooleanSubscription bs = new BooleanSubscription();
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         s.setResource(d);
 
@@ -71,7 +71,7 @@ public void error() {
     @Test
     public void complete() {
         BooleanSubscription bs = new BooleanSubscription();
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         s.setResource(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/util/AtomicThrowableTest.java b/src/test/java/io/reactivex/rxjava3/internal/util/AtomicThrowableTest.java
index 86f823e22e..9b033bffdd 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/util/AtomicThrowableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/util/AtomicThrowableTest.java
@@ -17,10 +17,10 @@
 
 import java.util.List;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.exceptions.TestException;
 import io.reactivex.rxjava3.internal.subscriptions.BooleanSubscription;
 import io.reactivex.rxjava3.observers.TestObserver;
@@ -124,7 +124,7 @@ public void tryTerminateConsumerSubscriberTerminated() {
     @Test
     public void tryTerminateConsumerObserverNoError() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         AtomicThrowable ex = new AtomicThrowable();
         ex.tryTerminateConsumer((Observer)to);
@@ -134,7 +134,7 @@ public void tryTerminateConsumerObserverNoError() {
     @Test
     public void tryTerminateConsumerObserverError() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         AtomicThrowable ex = new AtomicThrowable();
         ex.set(new TestException());
@@ -145,7 +145,7 @@ public void tryTerminateConsumerObserverError() {
     @Test
     public void tryTerminateConsumerObserverTerminated() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         AtomicThrowable ex = new AtomicThrowable();
         ex.terminate();
@@ -156,7 +156,7 @@ public void tryTerminateConsumerObserverTerminated() {
     @Test
     public void tryTerminateConsumerMaybeObserverNoError() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         AtomicThrowable ex = new AtomicThrowable();
         ex.tryTerminateConsumer((MaybeObserver)to);
@@ -166,7 +166,7 @@ public void tryTerminateConsumerMaybeObserverNoError() {
     @Test
     public void tryTerminateConsumerMaybeObserverError() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         AtomicThrowable ex = new AtomicThrowable();
         ex.set(new TestException());
@@ -177,7 +177,7 @@ public void tryTerminateConsumerMaybeObserverError() {
     @Test
     public void tryTerminateConsumerMaybeObserverTerminated() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         AtomicThrowable ex = new AtomicThrowable();
         ex.terminate();
@@ -188,7 +188,7 @@ public void tryTerminateConsumerMaybeObserverTerminated() {
     @Test
     public void tryTerminateConsumerSingleNoError() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         AtomicThrowable ex = new AtomicThrowable();
         ex.tryTerminateConsumer((SingleObserver)to);
@@ -198,7 +198,7 @@ public void tryTerminateConsumerSingleNoError() {
     @Test
     public void tryTerminateConsumerSingleError() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         AtomicThrowable ex = new AtomicThrowable();
         ex.set(new TestException());
@@ -209,7 +209,7 @@ public void tryTerminateConsumerSingleError() {
     @Test
     public void tryTerminateConsumerSingleTerminated() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         AtomicThrowable ex = new AtomicThrowable();
         ex.terminate();
@@ -220,7 +220,7 @@ public void tryTerminateConsumerSingleTerminated() {
     @Test
     public void tryTerminateConsumerCompletableObserverNoError() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         AtomicThrowable ex = new AtomicThrowable();
         ex.tryTerminateConsumer((CompletableObserver)to);
@@ -230,7 +230,7 @@ public void tryTerminateConsumerCompletableObserverNoError() {
     @Test
     public void tryTerminateConsumerCompletableObserverError() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         AtomicThrowable ex = new AtomicThrowable();
         ex.set(new TestException());
@@ -241,7 +241,7 @@ public void tryTerminateConsumerCompletableObserverError() {
     @Test
     public void tryTerminateConsumerCompletableObserverTerminated() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         AtomicThrowable ex = new AtomicThrowable();
         ex.terminate();
@@ -271,7 +271,7 @@ public void onComplete() {
     @Test
     public void tryTerminateConsumerEmitterNoError() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         AtomicThrowable ex = new AtomicThrowable();
         ex.tryTerminateConsumer(wrapToEmitter(to));
@@ -281,7 +281,7 @@ public void tryTerminateConsumerEmitterNoError() {
     @Test
     public void tryTerminateConsumerEmitterError() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         AtomicThrowable ex = new AtomicThrowable();
         ex.set(new TestException());
@@ -292,7 +292,7 @@ public void tryTerminateConsumerEmitterError() {
     @Test
     public void tryTerminateConsumerEmitterTerminated() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         AtomicThrowable ex = new AtomicThrowable();
         ex.terminate();
diff --git a/src/test/java/io/reactivex/rxjava3/internal/util/BlockingHelperTest.java b/src/test/java/io/reactivex/rxjava3/internal/util/BlockingHelperTest.java
index 7d4e07dab4..419febcaee 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/util/BlockingHelperTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/util/BlockingHelperTest.java
@@ -34,7 +34,7 @@ public void emptyEnum() {
     @Test
     public void interrupted() {
         CountDownLatch cdl = new CountDownLatch(1);
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         Thread.currentThread().interrupt();
 
@@ -50,7 +50,7 @@ public void interrupted() {
     @Test
     public void unblock() {
         final CountDownLatch cdl = new CountDownLatch(1);
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         Schedulers.computation().scheduleDirect(new Runnable() {
             @Override
diff --git a/src/test/java/io/reactivex/rxjava3/internal/util/EndConsumerHelperTest.java b/src/test/java/io/reactivex/rxjava3/internal/util/EndConsumerHelperTest.java
index 0ff03f24c2..1cb96e732f 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/util/EndConsumerHelperTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/util/EndConsumerHelperTest.java
@@ -209,13 +209,13 @@ public void onComplete() {
             }
         };
 
-        Disposable sub1 = Disposables.empty();
+        Disposable sub1 = Disposable.empty();
 
         consumer.onSubscribe(sub1);
 
         assertFalse(sub1.isDisposed());
 
-        Disposable sub2 = Disposables.empty();
+        Disposable sub2 = Disposable.empty();
 
         consumer.onSubscribe(sub2);
 
@@ -244,13 +244,13 @@ public void onComplete() {
             }
         };
 
-        Disposable sub1 = Disposables.empty();
+        Disposable sub1 = Disposable.empty();
 
         consumer.onSubscribe(sub1);
 
         assertFalse(sub1.isDisposed());
 
-        Disposable sub2 = Disposables.empty();
+        Disposable sub2 = Disposable.empty();
 
         consumer.onSubscribe(sub2);
 
@@ -279,13 +279,13 @@ public void onComplete() {
             }
         };
 
-        Disposable sub1 = Disposables.empty();
+        Disposable sub1 = Disposable.empty();
 
         consumer.onSubscribe(sub1);
 
         assertFalse(sub1.isDisposed());
 
-        Disposable sub2 = Disposables.empty();
+        Disposable sub2 = Disposable.empty();
 
         consumer.onSubscribe(sub2);
 
@@ -310,13 +310,13 @@ public void onError(Throwable t) {
             }
         };
 
-        Disposable sub1 = Disposables.empty();
+        Disposable sub1 = Disposable.empty();
 
         consumer.onSubscribe(sub1);
 
         assertFalse(sub1.isDisposed());
 
-        Disposable sub2 = Disposables.empty();
+        Disposable sub2 = Disposable.empty();
 
         consumer.onSubscribe(sub2);
 
@@ -341,13 +341,13 @@ public void onError(Throwable t) {
             }
         };
 
-        Disposable sub1 = Disposables.empty();
+        Disposable sub1 = Disposable.empty();
 
         consumer.onSubscribe(sub1);
 
         assertFalse(sub1.isDisposed());
 
-        Disposable sub2 = Disposables.empty();
+        Disposable sub2 = Disposable.empty();
 
         consumer.onSubscribe(sub2);
 
@@ -376,13 +376,13 @@ public void onComplete() {
             }
         };
 
-        Disposable sub1 = Disposables.empty();
+        Disposable sub1 = Disposable.empty();
 
         consumer.onSubscribe(sub1);
 
         assertFalse(sub1.isDisposed());
 
-        Disposable sub2 = Disposables.empty();
+        Disposable sub2 = Disposable.empty();
 
         consumer.onSubscribe(sub2);
 
@@ -411,13 +411,13 @@ public void onComplete() {
             }
         };
 
-        Disposable sub1 = Disposables.empty();
+        Disposable sub1 = Disposable.empty();
 
         consumer.onSubscribe(sub1);
 
         assertFalse(sub1.isDisposed());
 
-        Disposable sub2 = Disposables.empty();
+        Disposable sub2 = Disposable.empty();
 
         consumer.onSubscribe(sub2);
 
@@ -442,13 +442,13 @@ public void onComplete() {
             }
         };
 
-        Disposable sub1 = Disposables.empty();
+        Disposable sub1 = Disposable.empty();
 
         consumer.onSubscribe(sub1);
 
         assertFalse(sub1.isDisposed());
 
-        Disposable sub2 = Disposables.empty();
+        Disposable sub2 = Disposable.empty();
 
         consumer.onSubscribe(sub2);
 
@@ -473,13 +473,13 @@ public void onComplete() {
             }
         };
 
-        Disposable sub1 = Disposables.empty();
+        Disposable sub1 = Disposable.empty();
 
         consumer.onSubscribe(sub1);
 
         assertFalse(sub1.isDisposed());
 
-        Disposable sub2 = Disposables.empty();
+        Disposable sub2 = Disposable.empty();
 
         consumer.onSubscribe(sub2);
 
@@ -494,7 +494,7 @@ public void onComplete() {
 
     @Test
     public void validateDisposable() {
-        Disposable d1 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
 
         assertFalse(EndConsumerHelper.validate(DisposableHelper.DISPOSED, d1, getClass()));
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/util/HalfSerializerObserverTest.java b/src/test/java/io/reactivex/rxjava3/internal/util/HalfSerializerObserverTest.java
index 2171fadc2d..050e58dc64 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/util/HalfSerializerObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/util/HalfSerializerObserverTest.java
@@ -64,7 +64,7 @@ public void onComplete() {
 
         a[0] = observer;
 
-        observer.onSubscribe(Disposables.empty());
+        observer.onSubscribe(Disposable.empty());
 
         HalfSerializer.onNext(observer, 1, wip, error);
 
@@ -108,7 +108,7 @@ public void onComplete() {
 
         a[0] = observer;
 
-        observer.onSubscribe(Disposables.empty());
+        observer.onSubscribe(Disposable.empty());
 
         HalfSerializer.onNext(observer, 1, wip, error);
 
@@ -152,7 +152,7 @@ public void onComplete() {
 
         a[0] = observer;
 
-        observer.onSubscribe(Disposables.empty());
+        observer.onSubscribe(Disposable.empty());
 
         HalfSerializer.onNext(observer, 1, wip, error);
 
@@ -194,7 +194,7 @@ public void onComplete() {
 
         a[0] = observer;
 
-        observer.onSubscribe(Disposables.empty());
+        observer.onSubscribe(Disposable.empty());
 
         HalfSerializer.onError(observer, new TestException(), wip, error);
 
@@ -209,7 +209,7 @@ public void onNextOnCompleteRace() {
             final AtomicThrowable error = new AtomicThrowable();
 
             final TestObserver to = new TestObserver();
-            to.onSubscribe(Disposables.empty());
+            to.onSubscribe(Disposable.empty());
 
             Runnable r1 = new Runnable() {
                 @Override
@@ -242,7 +242,7 @@ public void onErrorOnCompleteRace() {
 
             final TestObserverEx to = new TestObserverEx();
 
-            to.onSubscribe(Disposables.empty());
+            to.onSubscribe(Disposable.empty());
 
             final TestException ex = new TestException();
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/util/NotificationLiteTest.java b/src/test/java/io/reactivex/rxjava3/internal/util/NotificationLiteTest.java
index 0149b14f4e..6fafc2d5db 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/util/NotificationLiteTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/util/NotificationLiteTest.java
@@ -28,7 +28,7 @@ public class NotificationLiteTest extends RxJavaTest {
     public void acceptFullObserver() {
         TestObserverEx to = new TestObserverEx();
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         assertFalse(NotificationLite.acceptFull(NotificationLite.disposable(d), to));
 
diff --git a/src/test/java/io/reactivex/rxjava3/internal/util/QueueDrainHelperTest.java b/src/test/java/io/reactivex/rxjava3/internal/util/QueueDrainHelperTest.java
index 9060e85c45..f2ace8d235 100644
--- a/src/test/java/io/reactivex/rxjava3/internal/util/QueueDrainHelperTest.java
+++ b/src/test/java/io/reactivex/rxjava3/internal/util/QueueDrainHelperTest.java
@@ -317,7 +317,7 @@ public boolean accept(Subscriber a, Integer v) {
         SpscArrayQueue q = new SpscArrayQueue(32);
         q.offer(1);
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         QueueDrainHelper.drainMaxLoop(q, ts, false, d, qd);
 
@@ -600,7 +600,7 @@ public boolean accept(Subscriber a, Integer v) {
     @Test
     public void observerCheckTerminatedDelayErrorEmpty() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         ObservableQueueDrain qd = new ObservableQueueDrain() {
             @Override
@@ -643,7 +643,7 @@ public void accept(Observer a, Integer v) {
     @Test
     public void observerCheckTerminatedDelayErrorEmptyResource() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         ObservableQueueDrain qd = new ObservableQueueDrain() {
             @Override
@@ -678,7 +678,7 @@ public void accept(Observer a, Integer v) {
 
         SpscArrayQueue q = new SpscArrayQueue(32);
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         QueueDrainHelper.checkTerminated(true, true, to, true, q, d, qd);
 
@@ -690,7 +690,7 @@ public void accept(Observer a, Integer v) {
     @Test
     public void observerCheckTerminatedDelayErrorNonEmpty() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         ObservableQueueDrain qd = new ObservableQueueDrain() {
             @Override
@@ -733,7 +733,7 @@ public void accept(Observer a, Integer v) {
     @Test
     public void observerCheckTerminatedDelayErrorEmptyError() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         ObservableQueueDrain qd = new ObservableQueueDrain() {
             @Override
@@ -776,7 +776,7 @@ public void accept(Observer a, Integer v) {
     @Test
     public void observerCheckTerminatedNonDelayErrorError() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         ObservableQueueDrain qd = new ObservableQueueDrain() {
             @Override
@@ -819,7 +819,7 @@ public void accept(Observer a, Integer v) {
     @Test
     public void observerCheckTerminatedNonDelayErrorErrorResource() {
         TestObserver to = new TestObserver();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         ObservableQueueDrain qd = new ObservableQueueDrain() {
             @Override
@@ -854,7 +854,7 @@ public void accept(Observer a, Integer v) {
 
         SpscArrayQueue q = new SpscArrayQueue(32);
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         QueueDrainHelper.checkTerminated(true, false, to, false, q, d, qd);
 
diff --git a/src/test/java/io/reactivex/rxjava3/maybe/MaybeCreateTest.java b/src/test/java/io/reactivex/rxjava3/maybe/MaybeCreateTest.java
index d681c85c0c..ee97e25015 100644
--- a/src/test/java/io/reactivex/rxjava3/maybe/MaybeCreateTest.java
+++ b/src/test/java/io/reactivex/rxjava3/maybe/MaybeCreateTest.java
@@ -36,7 +36,7 @@ public void nullArgument() {
     public void basic() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable d = Disposables.empty();
+            final Disposable d = Disposable.empty();
 
             Maybe.create(new MaybeOnSubscribe() {
                 @Override
@@ -61,8 +61,8 @@ public void subscribe(MaybeEmitter e) throws Exception {
     public void basicWithCancellable() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable d1 = Disposables.empty();
-            final Disposable d2 = Disposables.empty();
+            final Disposable d1 = Disposable.empty();
+            final Disposable d2 = Disposable.empty();
 
             Maybe.create(new MaybeOnSubscribe() {
                 @Override
@@ -95,7 +95,7 @@ public void cancel() throws Exception {
     public void basicWithError() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable d = Disposables.empty();
+            final Disposable d = Disposable.empty();
 
             Maybe.create(new MaybeOnSubscribe() {
                 @Override
@@ -120,7 +120,7 @@ public void subscribe(MaybeEmitter e) throws Exception {
     public void basicWithCompletion() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable d = Disposables.empty();
+            final Disposable d = Disposable.empty();
 
             Maybe.create(new MaybeOnSubscribe() {
                 @Override
diff --git a/src/test/java/io/reactivex/rxjava3/maybe/MaybeTest.java b/src/test/java/io/reactivex/rxjava3/maybe/MaybeTest.java
index 3796f365c0..69ea889363 100644
--- a/src/test/java/io/reactivex/rxjava3/maybe/MaybeTest.java
+++ b/src/test/java/io/reactivex/rxjava3/maybe/MaybeTest.java
@@ -230,7 +230,7 @@ public void wrapCustom() {
         Maybe.wrap(new MaybeSource() {
             @Override
             public void subscribe(MaybeObserver observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onSuccess(1);
             }
         })
@@ -356,7 +356,7 @@ public void unsafeCreate() {
         Maybe.unsafeCreate(new MaybeSource() {
             @Override
             public void subscribe(MaybeObserver observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onSuccess(1);
             }
         })
@@ -1503,7 +1503,7 @@ public void nullArgument() {
     public void basic() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable d = Disposables.empty();
+            final Disposable d = Disposable.empty();
 
             Maybe.create(new MaybeOnSubscribe() {
                 @Override
@@ -1533,7 +1533,7 @@ public void subscribe(MaybeEmitter e) throws Exception {
     public void basicWithError() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable d = Disposables.empty();
+            final Disposable d = Disposable.empty();
 
             Maybe.create(new MaybeOnSubscribe() {
                 @Override
@@ -1561,7 +1561,7 @@ public void subscribe(MaybeEmitter e) throws Exception {
     public void basicWithComplete() {
         List errors = TestHelper.trackPluginErrors();
         try {
-            final Disposable d = Disposables.empty();
+            final Disposable d = Disposable.empty();
 
             Maybe.create(new MaybeOnSubscribe() {
                 @Override
diff --git a/src/test/java/io/reactivex/rxjava3/observable/ObservableTest.java b/src/test/java/io/reactivex/rxjava3/observable/ObservableTest.java
index 4d26afe20d..a3d79a426c 100644
--- a/src/test/java/io/reactivex/rxjava3/observable/ObservableTest.java
+++ b/src/test/java/io/reactivex/rxjava3/observable/ObservableTest.java
@@ -500,7 +500,7 @@ public void publishLast() throws InterruptedException {
         ConnectableObservable connectable = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(final Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 count.incrementAndGet();
                 new Thread(new Runnable() {
                     @Override
@@ -538,7 +538,7 @@ public void replay() throws InterruptedException {
         ConnectableObservable o = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(final Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     new Thread(new Runnable() {
 
                         @Override
@@ -591,7 +591,7 @@ public void cache() throws InterruptedException {
         Observable o = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(final Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
                     new Thread(new Runnable() {
                         @Override
                         public void run() {
@@ -636,7 +636,7 @@ public void cacheWithCapacity() throws InterruptedException {
         Observable o = Observable.unsafeCreate(new ObservableSource() {
             @Override
             public void subscribe(final Observer observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 new Thread(new Runnable() {
                     @Override
                     public void run() {
diff --git a/src/test/java/io/reactivex/rxjava3/observers/DisposableCompletableObserverTest.java b/src/test/java/io/reactivex/rxjava3/observers/DisposableCompletableObserverTest.java
index 45d4b82172..84db3819ae 100644
--- a/src/test/java/io/reactivex/rxjava3/observers/DisposableCompletableObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/observers/DisposableCompletableObserverTest.java
@@ -79,9 +79,9 @@ public void startOnce() {
         try {
             TestCompletable tc = new TestCompletable();
 
-            tc.onSubscribe(Disposables.empty());
+            tc.onSubscribe(Disposable.empty());
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             tc.onSubscribe(d);
 
@@ -102,7 +102,7 @@ public void dispose() {
 
         assertTrue(tc.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         tc.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/observers/DisposableMaybeObserverTest.java b/src/test/java/io/reactivex/rxjava3/observers/DisposableMaybeObserverTest.java
index 812e40ca3a..42cbd25c5d 100644
--- a/src/test/java/io/reactivex/rxjava3/observers/DisposableMaybeObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/observers/DisposableMaybeObserverTest.java
@@ -87,9 +87,9 @@ public void startOnce() {
         try {
             TestMaybe tc = new TestMaybe();
 
-            tc.onSubscribe(Disposables.empty());
+            tc.onSubscribe(Disposable.empty());
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             tc.onSubscribe(d);
 
@@ -110,7 +110,7 @@ public void dispose() {
 
         assertTrue(tc.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         tc.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/observers/DisposableObserverTest.java b/src/test/java/io/reactivex/rxjava3/observers/DisposableObserverTest.java
index 6a2b332293..b223e47b48 100644
--- a/src/test/java/io/reactivex/rxjava3/observers/DisposableObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/observers/DisposableObserverTest.java
@@ -86,9 +86,9 @@ public void startOnce() {
         try {
             TestDisposableObserver tc = new TestDisposableObserver();
 
-            tc.onSubscribe(Disposables.empty());
+            tc.onSubscribe(Disposable.empty());
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             tc.onSubscribe(d);
 
@@ -112,7 +112,7 @@ public void dispose() {
 
         assertTrue(tc.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         tc.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/observers/DisposableSingleObserverTest.java b/src/test/java/io/reactivex/rxjava3/observers/DisposableSingleObserverTest.java
index 983a8dc847..6bf84e21d3 100644
--- a/src/test/java/io/reactivex/rxjava3/observers/DisposableSingleObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/observers/DisposableSingleObserverTest.java
@@ -79,9 +79,9 @@ public void startOnce() {
         try {
             TestSingle tc = new TestSingle();
 
-            tc.onSubscribe(Disposables.empty());
+            tc.onSubscribe(Disposable.empty());
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             tc.onSubscribe(d);
 
@@ -102,7 +102,7 @@ public void dispose() {
 
         assertTrue(tc.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         tc.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/observers/ResourceCompletableObserverTest.java b/src/test/java/io/reactivex/rxjava3/observers/ResourceCompletableObserverTest.java
index 487f42352a..6564ae4d16 100644
--- a/src/test/java/io/reactivex/rxjava3/observers/ResourceCompletableObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/observers/ResourceCompletableObserverTest.java
@@ -68,7 +68,7 @@ public void addResources() {
 
         assertFalse(rco.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         rco.add(d);
 
@@ -93,7 +93,7 @@ public void onCompleteCleansUp() {
 
         assertFalse(rco.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         rco.add(d);
 
@@ -112,7 +112,7 @@ public void onErrorCleansUp() {
 
         assertFalse(rco.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         rco.add(d);
 
@@ -167,9 +167,9 @@ public void startOnce() {
         try {
             TestResourceCompletableObserver rco = new TestResourceCompletableObserver();
 
-            rco.onSubscribe(Disposables.empty());
+            rco.onSubscribe(Disposable.empty());
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             rco.onSubscribe(d);
 
@@ -188,7 +188,7 @@ public void dispose() {
         TestResourceCompletableObserver rco = new TestResourceCompletableObserver();
         rco.dispose();
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         rco.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/observers/ResourceMaybeObserverTest.java b/src/test/java/io/reactivex/rxjava3/observers/ResourceMaybeObserverTest.java
index 92370a3203..04a093d753 100644
--- a/src/test/java/io/reactivex/rxjava3/observers/ResourceMaybeObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/observers/ResourceMaybeObserverTest.java
@@ -77,7 +77,7 @@ public void addResources() {
 
         assertFalse(rmo.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         rmo.add(d);
 
@@ -102,7 +102,7 @@ public void onCompleteCleansUp() {
 
         assertFalse(rmo.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         rmo.add(d);
 
@@ -121,7 +121,7 @@ public void onSuccessCleansUp() {
 
         assertFalse(rmo.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         rmo.add(d);
 
@@ -140,7 +140,7 @@ public void onErrorCleansUp() {
 
         assertFalse(rmo.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         rmo.add(d);
 
@@ -217,9 +217,9 @@ public void startOnce() {
         try {
             TestResourceMaybeObserver rmo = new TestResourceMaybeObserver();
 
-            rmo.onSubscribe(Disposables.empty());
+            rmo.onSubscribe(Disposable.empty());
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             rmo.onSubscribe(d);
 
@@ -238,7 +238,7 @@ public void dispose() {
         TestResourceMaybeObserver rmo = new TestResourceMaybeObserver();
         rmo.dispose();
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         rmo.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/observers/ResourceObserverTest.java b/src/test/java/io/reactivex/rxjava3/observers/ResourceObserverTest.java
index d81b7fbe88..e0ff866e75 100644
--- a/src/test/java/io/reactivex/rxjava3/observers/ResourceObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/observers/ResourceObserverTest.java
@@ -77,7 +77,7 @@ public void addResources() {
 
         assertFalse(ro.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         ro.add(d);
 
@@ -102,7 +102,7 @@ public void onCompleteCleansUp() {
 
         assertFalse(ro.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         ro.add(d);
 
@@ -121,7 +121,7 @@ public void onErrorCleansUp() {
 
         assertFalse(ro.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         ro.add(d);
 
@@ -178,9 +178,9 @@ public void startOnce() {
         try {
             TestResourceObserver tc = new TestResourceObserver();
 
-            tc.onSubscribe(Disposables.empty());
+            tc.onSubscribe(Disposable.empty());
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             tc.onSubscribe(d);
 
@@ -199,7 +199,7 @@ public void dispose() {
         TestResourceObserver tc = new TestResourceObserver();
         tc.dispose();
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         tc.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/observers/ResourceSingleObserverTest.java b/src/test/java/io/reactivex/rxjava3/observers/ResourceSingleObserverTest.java
index 1add001b63..054f189bc5 100644
--- a/src/test/java/io/reactivex/rxjava3/observers/ResourceSingleObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/observers/ResourceSingleObserverTest.java
@@ -68,7 +68,7 @@ public void addResources() {
 
         assertFalse(rso.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         rso.add(d);
 
@@ -93,7 +93,7 @@ public void onSuccessCleansUp() {
 
         assertFalse(rso.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         rso.add(d);
 
@@ -112,7 +112,7 @@ public void onErrorCleansUp() {
 
         assertFalse(rso.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         rso.add(d);
 
@@ -169,9 +169,9 @@ public void startOnce() {
         try {
             TestResourceSingleObserver rso = new TestResourceSingleObserver();
 
-            rso.onSubscribe(Disposables.empty());
+            rso.onSubscribe(Disposable.empty());
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             rso.onSubscribe(d);
 
@@ -190,7 +190,7 @@ public void dispose() {
         TestResourceSingleObserver rso = new TestResourceSingleObserver();
         rso.dispose();
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         rso.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/observers/SafeObserverTest.java b/src/test/java/io/reactivex/rxjava3/observers/SafeObserverTest.java
index 876bcffbe4..446dfe20df 100644
--- a/src/test/java/io/reactivex/rxjava3/observers/SafeObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/observers/SafeObserverTest.java
@@ -46,7 +46,7 @@ public void onNextFailureSafe() {
         AtomicReference onError = new AtomicReference();
         try {
             SafeObserver safeObserver = new SafeObserver(OBSERVER_ONNEXT_FAIL(onError));
-            safeObserver.onSubscribe(Disposables.empty());
+            safeObserver.onSubscribe(Disposable.empty());
             safeObserver.onNext("one");
             assertNotNull(onError.get());
             assertTrue(onError.get() instanceof SafeObserverTestException);
@@ -209,7 +209,7 @@ public void dispose() {
 
         SafeObserver so = new SafeObserver(to);
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         so.onSubscribe(d);
 
@@ -226,7 +226,7 @@ public void onNextAfterComplete() {
 
         SafeObserver so = new SafeObserver(to);
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         so.onSubscribe(d);
 
@@ -247,7 +247,7 @@ public void onNextNull() {
 
         SafeObserver so = new SafeObserver(to);
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         so.onSubscribe(d);
 
@@ -298,7 +298,7 @@ public void onNextNormal() {
 
         SafeObserver so = new SafeObserver(to);
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         so.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/observers/SerializedObserverTest.java b/src/test/java/io/reactivex/rxjava3/observers/SerializedObserverTest.java
index 1d467242f5..84fa434879 100644
--- a/src/test/java/io/reactivex/rxjava3/observers/SerializedObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/observers/SerializedObserverTest.java
@@ -220,7 +220,7 @@ public void runConcurrencyTest() {
             TestConcurrencySubscriber tw = new TestConcurrencySubscriber();
             // we need Synchronized + SafeObserver to handle synchronization plus life-cycle
             Observer w = serializedObserver(new SafeObserver(tw));
-            w.onSubscribe(Disposables.empty());
+            w.onSubscribe(Disposable.empty());
 
             Future f1 = tp.submit(new OnNextThread(w, 12000));
             Future f2 = tp.submit(new OnNextThread(w, 5000));
@@ -383,7 +383,7 @@ public void onNext(String t) {
         AtomicInteger p1 = new AtomicInteger();
         AtomicInteger p2 = new AtomicInteger();
 
-        o.onSubscribe(Disposables.empty());
+        o.onSubscribe(Disposable.empty());
         DisposableObserver as1 = new DisposableObserver() {
             @Override
             public void onNext(String t) {
@@ -446,7 +446,7 @@ private static Observable infinite(final AtomicInteger produced) {
 
             @Override
             public void subscribe(Observer observer) {
-                Disposable bs = Disposables.empty();
+                Disposable bs = Disposable.empty();
                 observer.onSubscribe(bs);
                 while (!bs.isDisposed()) {
                     observer.onNext("onNext");
@@ -651,7 +651,7 @@ private static class TestSingleThreadedObservable implements ObservableSource observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             System.out.println("TestSingleThreadedObservable subscribed to ...");
             t = new Thread(new Runnable() {
 
@@ -703,7 +703,7 @@ private static class TestMultiThreadedObservable implements ObservableSource observer) {
-            observer.onSubscribe(Disposables.empty());
+            observer.onSubscribe(Disposable.empty());
             final NullPointerException npe = new NullPointerException();
             System.out.println("TestMultiThreadedObservable subscribed to ...");
             t = new Thread(new Runnable() {
@@ -859,7 +859,7 @@ public void onNext(Integer v) {
                 }
             };
             SerializedObserver sobs = new SerializedObserver(to);
-            sobs.onSubscribe(Disposables.empty());
+            sobs.onSubscribe(Disposable.empty());
             serial.set(sobs);
 
             sobs.onNext(1);
@@ -886,7 +886,7 @@ public void onNext(Integer v) {
             }
         };
         SerializedObserver sobs = new SerializedObserver(to);
-        sobs.onSubscribe(Disposables.empty());
+        sobs.onSubscribe(Disposable.empty());
         serial.set(sobs);
 
         sobs.onNext(1);
@@ -902,7 +902,7 @@ public void dispose() {
 
         SerializedObserver so = new SerializedObserver(to);
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         so.onSubscribe(d);
 
@@ -922,7 +922,7 @@ public void onCompleteRace() {
 
             final SerializedObserver so = new SerializedObserver(to);
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             so.onSubscribe(d);
 
@@ -948,7 +948,7 @@ public void onNextOnCompleteRace() {
 
             final SerializedObserver so = new SerializedObserver(to);
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             so.onSubscribe(d);
 
@@ -984,7 +984,7 @@ public void onNextOnErrorRace() {
 
             final SerializedObserver so = new SerializedObserver(to);
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             so.onSubscribe(d);
 
@@ -1022,7 +1022,7 @@ public void onNextOnErrorRaceDelayError() {
 
             final SerializedObserver so = new SerializedObserver(to, true);
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             so.onSubscribe(d);
 
@@ -1063,9 +1063,9 @@ public void startOnce() {
 
             final SerializedObserver so = new SerializedObserver(to);
 
-            so.onSubscribe(Disposables.empty());
+            so.onSubscribe(Disposable.empty());
 
-            Disposable d = Disposables.empty();
+            Disposable d = Disposable.empty();
 
             so.onSubscribe(d);
 
@@ -1087,7 +1087,7 @@ public void onCompleteOnErrorRace() {
 
                 final SerializedObserver so = new SerializedObserver(to);
 
-                Disposable d = Disposables.empty();
+                Disposable d = Disposable.empty();
 
                 so.onSubscribe(d);
 
@@ -1134,7 +1134,7 @@ public void nullOnNext() {
 
         final SerializedObserver so = new SerializedObserver(to);
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         so.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/observers/TestObserverTest.java b/src/test/java/io/reactivex/rxjava3/observers/TestObserverTest.java
index 1468dc9cb5..581aa0b0b1 100644
--- a/src/test/java/io/reactivex/rxjava3/observers/TestObserverTest.java
+++ b/src/test/java/io/reactivex/rxjava3/observers/TestObserverTest.java
@@ -171,7 +171,7 @@ public void createDelegate() {
 
         assertFalse(to.hasSubscription());
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         assertTrue(to.hasSubscription());
 
@@ -243,7 +243,7 @@ public void assertError() {
             // expected
         }
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.assertSubscribed();
 
@@ -315,7 +315,7 @@ public void valueAndClass() {
     public void assertFailure() {
         TestObserver to = TestObserver.create();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.onError(new TestException("Forced failure"));
 
@@ -330,7 +330,7 @@ public void assertFailure() {
     public void assertFuseable() {
         TestObserver to = TestObserver.create();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to = TestObserver.create();
 
@@ -341,7 +341,7 @@ public void assertFuseable() {
     public void assertResult() {
         TestObserver to = TestObserver.create();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.onComplete();
 
@@ -378,7 +378,7 @@ public void assertResult() {
     public void await() throws Exception {
         TestObserver to = TestObserver.create();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         assertFalse(to.await(100, TimeUnit.MILLISECONDS));
 
@@ -406,7 +406,7 @@ public void await() throws Exception {
 
         final TestObserver to1 = TestObserver.create();
 
-        to1.onSubscribe(Disposables.empty());
+        to1.onSubscribe(Disposable.empty());
 
         Schedulers.single().scheduleDirect(new Runnable() {
             @Override
@@ -422,7 +422,7 @@ public void run() {
     public void onNext() {
         TestObserver to = TestObserver.create();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         assertEquals(0, to.values().size());
 
@@ -445,7 +445,7 @@ public void onNext() {
     public void multipleTerminals() {
         TestObserver to = TestObserver.create();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.assertNotComplete();
 
@@ -479,7 +479,7 @@ public void multipleTerminals() {
     public void assertValue() {
         TestObserver to = TestObserver.create();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         try {
             to.assertValue(1);
@@ -519,7 +519,7 @@ public void onNextMisbehave() {
 
         to = TestObserver.create();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.onNext(null);
 
@@ -530,7 +530,7 @@ public void onNextMisbehave() {
     public void awaitTerminalEventInterrupt() {
         final TestObserver to = TestObserver.create();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         Thread.currentThread().interrupt();
 
@@ -559,7 +559,7 @@ public void awaitTerminalEventInterrupt() {
     public void assertTerminated2() {
         TestObserver to = TestObserver.create();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.onError(new TestException());
         to.onError(new IOException());
@@ -573,7 +573,7 @@ public void assertTerminated2() {
 
         to = TestObserver.create();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.onError(new TestException());
         to.onComplete();
@@ -589,9 +589,9 @@ public void onSubscribe() {
 
         to = TestObserver.create();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
-        Disposable d1 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
 
         to.onSubscribe(d1);
 
@@ -602,7 +602,7 @@ public void onSubscribe() {
         to = TestObserver.create();
         to.dispose();
 
-        d1 = Disposables.empty();
+        d1 = Disposable.empty();
 
         to.onSubscribe(d1);
 
@@ -614,7 +614,7 @@ public void onSubscribe() {
     public void assertValueSequence() {
         TestObserver to = TestObserver.create();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.onNext(1);
         to.onNext(2);
@@ -654,7 +654,7 @@ public void assertEmpty() {
             // expected
         }
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.assertEmpty();
 
@@ -731,7 +731,7 @@ public boolean test(Throwable throwable) throws Exception {
     public void assertComplete() {
         TestObserver to = new TestObserver();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         try {
             to.assertComplete();
@@ -789,7 +789,7 @@ public void onComplete() {
 
         });
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         try {
             to.onComplete();
@@ -825,7 +825,7 @@ public void onComplete() {
 
         });
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         try {
             to.onError(new IOException());
@@ -1028,7 +1028,7 @@ public void withTag() {
     @Test
     public void assertValuesOnly() {
         TestObserver to = TestObserver.create();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
         to.assertValuesOnly();
 
         to.onNext(5);
@@ -1041,7 +1041,7 @@ public void assertValuesOnly() {
     @Test
     public void assertValuesOnlyThrowsOnUnexpectedValue() {
         TestObserver to = TestObserver.create();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
         to.assertValuesOnly();
 
         to.onNext(5);
@@ -1060,7 +1060,7 @@ public void assertValuesOnlyThrowsOnUnexpectedValue() {
     @Test
     public void assertValuesOnlyThrowsWhenCompleted() {
         TestObserver to = TestObserver.create();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.onComplete();
 
@@ -1075,7 +1075,7 @@ public void assertValuesOnlyThrowsWhenCompleted() {
     @Test
     public void assertValuesOnlyThrowsWhenErrored() {
         TestObserver to = TestObserver.create();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.onError(new TestException());
 
diff --git a/src/test/java/io/reactivex/rxjava3/plugins/RxJavaPluginsTest.java b/src/test/java/io/reactivex/rxjava3/plugins/RxJavaPluginsTest.java
index 5e0b5ab207..090ff6b766 100644
--- a/src/test/java/io/reactivex/rxjava3/plugins/RxJavaPluginsTest.java
+++ b/src/test/java/io/reactivex/rxjava3/plugins/RxJavaPluginsTest.java
@@ -1261,7 +1261,7 @@ public void reset() {
                         @SuppressWarnings("unchecked")
                         @Override
                         protected void subscribeActual(Observer observer) {
-                            observer.onSubscribe(Disposables.empty());
+                            observer.onSubscribe(Disposable.empty());
                             observer.onNext(10);
                             observer.onComplete();
                         }
diff --git a/src/test/java/io/reactivex/rxjava3/schedulers/CachedThreadSchedulerTest.java b/src/test/java/io/reactivex/rxjava3/schedulers/CachedThreadSchedulerTest.java
index 35be875a9a..8782142035 100644
--- a/src/test/java/io/reactivex/rxjava3/schedulers/CachedThreadSchedulerTest.java
+++ b/src/test/java/io/reactivex/rxjava3/schedulers/CachedThreadSchedulerTest.java
@@ -114,11 +114,11 @@ public void run() {
         Worker w = s.createWorker();
         w.dispose();
 
-        assertEquals(Disposables.disposed(), w.schedule(r));
+        assertEquals(Disposable.disposed(), w.schedule(r));
 
-        assertEquals(Disposables.disposed(), w.schedule(r, 1, TimeUnit.SECONDS));
+        assertEquals(Disposable.disposed(), w.schedule(r, 1, TimeUnit.SECONDS));
 
-        assertEquals(Disposables.disposed(), w.schedulePeriodically(r, 1, 1, TimeUnit.SECONDS));
+        assertEquals(Disposable.disposed(), w.schedulePeriodically(r, 1, 1, TimeUnit.SECONDS));
 
         assertEquals(0, calls[0]);
     }
diff --git a/src/test/java/io/reactivex/rxjava3/schedulers/ComputationSchedulerTests.java b/src/test/java/io/reactivex/rxjava3/schedulers/ComputationSchedulerTests.java
index 6d2aec07c9..a963f24665 100644
--- a/src/test/java/io/reactivex/rxjava3/schedulers/ComputationSchedulerTests.java
+++ b/src/test/java/io/reactivex/rxjava3/schedulers/ComputationSchedulerTests.java
@@ -18,11 +18,11 @@
 import java.util.HashMap;
 import java.util.concurrent.*;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.Test;
 
 import io.reactivex.rxjava3.core.*;
 import io.reactivex.rxjava3.core.Scheduler.Worker;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.functions.*;
 import io.reactivex.rxjava3.internal.schedulers.ComputationScheduler;
 
@@ -173,22 +173,22 @@ public void run() {
         s.shutdown();
         s.shutdown();
 
-        assertEquals(Disposables.disposed(), s.scheduleDirect(r));
+        assertEquals(Disposable.disposed(), s.scheduleDirect(r));
 
-        assertEquals(Disposables.disposed(), s.scheduleDirect(r, 1, TimeUnit.SECONDS));
+        assertEquals(Disposable.disposed(), s.scheduleDirect(r, 1, TimeUnit.SECONDS));
 
-        assertEquals(Disposables.disposed(), s.schedulePeriodicallyDirect(r, 1, 1, TimeUnit.SECONDS));
+        assertEquals(Disposable.disposed(), s.schedulePeriodicallyDirect(r, 1, 1, TimeUnit.SECONDS));
 
         Worker w = s.createWorker();
         w.dispose();
 
         assertTrue(w.isDisposed());
 
-        assertEquals(Disposables.disposed(), w.schedule(r));
+        assertEquals(Disposable.disposed(), w.schedule(r));
 
-        assertEquals(Disposables.disposed(), w.schedule(r, 1, TimeUnit.SECONDS));
+        assertEquals(Disposable.disposed(), w.schedule(r, 1, TimeUnit.SECONDS));
 
-        assertEquals(Disposables.disposed(), w.schedulePeriodically(r, 1, 1, TimeUnit.SECONDS));
+        assertEquals(Disposable.disposed(), w.schedulePeriodically(r, 1, 1, TimeUnit.SECONDS));
 
         assertEquals(0, calls[0]);
     }
diff --git a/src/test/java/io/reactivex/rxjava3/schedulers/NewThreadSchedulerTest.java b/src/test/java/io/reactivex/rxjava3/schedulers/NewThreadSchedulerTest.java
index df114d23e8..352e13333c 100644
--- a/src/test/java/io/reactivex/rxjava3/schedulers/NewThreadSchedulerTest.java
+++ b/src/test/java/io/reactivex/rxjava3/schedulers/NewThreadSchedulerTest.java
@@ -53,11 +53,11 @@ public void run() {
 
         assertTrue(w.isDisposed());
 
-        assertEquals(Disposables.disposed(), w.schedule(r));
+        assertEquals(Disposable.disposed(), w.schedule(r));
 
-        assertEquals(Disposables.disposed(), w.schedule(r, 1, TimeUnit.SECONDS));
+        assertEquals(Disposable.disposed(), w.schedule(r, 1, TimeUnit.SECONDS));
 
-        assertEquals(Disposables.disposed(), w.schedulePeriodically(r, 1, 1, TimeUnit.SECONDS));
+        assertEquals(Disposable.disposed(), w.schedulePeriodically(r, 1, 1, TimeUnit.SECONDS));
 
         NewThreadWorker actual = (NewThreadWorker)w;
 
diff --git a/src/test/java/io/reactivex/rxjava3/single/SingleTest.java b/src/test/java/io/reactivex/rxjava3/single/SingleTest.java
index 0e99b0b26d..81b5038719 100644
--- a/src/test/java/io/reactivex/rxjava3/single/SingleTest.java
+++ b/src/test/java/io/reactivex/rxjava3/single/SingleTest.java
@@ -133,7 +133,7 @@ public void createSuccess() {
         Single.unsafeCreate(new SingleSource() {
             @Override
             public void subscribe(SingleObserver observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onSuccess("Hello");
             }
         }).toFlowable().subscribe(ts);
@@ -147,7 +147,7 @@ public void createError() {
         Single.unsafeCreate(new SingleSource() {
             @Override
             public void subscribe(SingleObserver observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 observer.onError(new RuntimeException("fail"));
             }
         }).toFlowable().subscribe(ts);
@@ -204,7 +204,7 @@ public void timeout() {
         Single s1 = Single.unsafeCreate(new SingleSource() {
             @Override
             public void subscribe(SingleObserver observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                 try {
                     Thread.sleep(5000);
                 } catch (InterruptedException e) {
@@ -226,7 +226,7 @@ public void timeoutWithFallback() {
         Single s1 = Single.unsafeCreate(new SingleSource() {
             @Override
             public void subscribe(SingleObserver observer) {
-                observer.onSubscribe(Disposables.empty());
+                observer.onSubscribe(Disposable.empty());
                     try {
                         Thread.sleep(5000);
                     } catch (InterruptedException e) {
@@ -269,7 +269,7 @@ public void run() {
                     }
 
                 });
-                sd.replace(Disposables.fromRunnable(new Runnable() {
+                sd.replace(Disposable.fromRunnable(new Runnable() {
                     @Override
                     public void run() {
                         unsubscribed.set(true);
@@ -343,7 +343,7 @@ public void run() {
                     }
 
                 });
-                sd.replace(Disposables.fromRunnable(new Runnable() {
+                sd.replace(Disposable.fromRunnable(new Runnable() {
                     @Override
                     public void run() {
                         unsubscribed.set(true);
@@ -399,7 +399,7 @@ public void run() {
                     }
 
                 });
-                sd.replace(Disposables.fromRunnable(new Runnable() {
+                sd.replace(Disposable.fromRunnable(new Runnable() {
                     @Override
                     public void run() {
                         unsubscribed.set(true);
@@ -431,7 +431,7 @@ public void backpressureAsObservable() {
         Single s = Single.unsafeCreate(new SingleSource() {
             @Override
             public void subscribe(SingleObserver t) {
-                t.onSubscribe(Disposables.empty());
+                t.onSubscribe(Disposable.empty());
                 t.onSuccess("hello");
             }
         });
diff --git a/src/test/java/io/reactivex/rxjava3/subjects/AsyncSubjectTest.java b/src/test/java/io/reactivex/rxjava3/subjects/AsyncSubjectTest.java
index 7a7e381bf9..e6f8245d22 100644
--- a/src/test/java/io/reactivex/rxjava3/subjects/AsyncSubjectTest.java
+++ b/src/test/java/io/reactivex/rxjava3/subjects/AsyncSubjectTest.java
@@ -362,14 +362,14 @@ public void fusionOfflie() {
     public void onSubscribeAfterDone() {
         AsyncSubject p = AsyncSubject.create();
 
-        Disposable bs = Disposables.empty();
+        Disposable bs = Disposable.empty();
         p.onSubscribe(bs);
 
         assertFalse(bs.isDisposed());
 
         p.onComplete();
 
-        bs = Disposables.empty();
+        bs = Disposable.empty();
         p.onSubscribe(bs);
 
         assertTrue(bs.isDisposed());
diff --git a/src/test/java/io/reactivex/rxjava3/subjects/BehaviorSubjectTest.java b/src/test/java/io/reactivex/rxjava3/subjects/BehaviorSubjectTest.java
index af73a522aa..0d14802814 100644
--- a/src/test/java/io/reactivex/rxjava3/subjects/BehaviorSubjectTest.java
+++ b/src/test/java/io/reactivex/rxjava3/subjects/BehaviorSubjectTest.java
@@ -542,7 +542,7 @@ public void cancelOnArrival() {
     public void onSubscribe() {
         BehaviorSubject p = BehaviorSubject.create();
 
-        Disposable bs = Disposables.empty();
+        Disposable bs = Disposable.empty();
 
         p.onSubscribe(bs);
 
@@ -550,7 +550,7 @@ public void onSubscribe() {
 
         p.onComplete();
 
-        bs = Disposables.empty();
+        bs = Disposable.empty();
 
         p.onSubscribe(bs);
 
diff --git a/src/test/java/io/reactivex/rxjava3/subjects/CompletableSubjectTest.java b/src/test/java/io/reactivex/rxjava3/subjects/CompletableSubjectTest.java
index 34aaff3831..02ac92b064 100644
--- a/src/test/java/io/reactivex/rxjava3/subjects/CompletableSubjectTest.java
+++ b/src/test/java/io/reactivex/rxjava3/subjects/CompletableSubjectTest.java
@@ -189,7 +189,7 @@ public void onComplete() {
     public void onSubscribeDispose() {
         CompletableSubject cs = CompletableSubject.create();
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         cs.onSubscribe(d);
 
@@ -197,7 +197,7 @@ public void onSubscribeDispose() {
 
         cs.onComplete();
 
-        d = Disposables.empty();
+        d = Disposable.empty();
 
         cs.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/subjects/MaybeSubjectTest.java b/src/test/java/io/reactivex/rxjava3/subjects/MaybeSubjectTest.java
index 8ff3f7b1b5..31742e10a9 100644
--- a/src/test/java/io/reactivex/rxjava3/subjects/MaybeSubjectTest.java
+++ b/src/test/java/io/reactivex/rxjava3/subjects/MaybeSubjectTest.java
@@ -234,7 +234,7 @@ public void onComplete() {
     public void onSubscribeDispose() {
         MaybeSubject ms = MaybeSubject.create();
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         ms.onSubscribe(d);
 
@@ -242,7 +242,7 @@ public void onSubscribeDispose() {
 
         ms.onComplete();
 
-        d = Disposables.empty();
+        d = Disposable.empty();
 
         ms.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/subjects/ReplaySubjectBoundedConcurrencyTest.java b/src/test/java/io/reactivex/rxjava3/subjects/ReplaySubjectBoundedConcurrencyTest.java
index 45520ebffa..c1cef763fe 100644
--- a/src/test/java/io/reactivex/rxjava3/subjects/ReplaySubjectBoundedConcurrencyTest.java
+++ b/src/test/java/io/reactivex/rxjava3/subjects/ReplaySubjectBoundedConcurrencyTest.java
@@ -19,12 +19,12 @@
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.AtomicReference;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.*;
 
 import io.reactivex.rxjava3.core.*;
 import io.reactivex.rxjava3.core.Observable;
 import io.reactivex.rxjava3.core.Observer;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.functions.Consumer;
 import io.reactivex.rxjava3.observers.DefaultObserver;
 import io.reactivex.rxjava3.schedulers.Schedulers;
@@ -43,7 +43,7 @@ public void run() {
 
                     @Override
                     public void subscribe(Observer o) {
-                        o.onSubscribe(Disposables.empty());
+                        o.onSubscribe(Disposable.empty());
                         System.out.println("********* Start Source Data ***********");
                         for (long l = 1; l <= 10000; l++) {
                             o.onNext(l);
@@ -153,7 +153,7 @@ public void run() {
 
                     @Override
                     public void subscribe(Observer o) {
-                        o.onSubscribe(Disposables.empty());
+                        o.onSubscribe(Disposable.empty());
                         System.out.println("********* Start Source Data ***********");
                         for (long l = 1; l <= 10000; l++) {
                             o.onNext(l);
diff --git a/src/test/java/io/reactivex/rxjava3/subjects/ReplaySubjectConcurrencyTest.java b/src/test/java/io/reactivex/rxjava3/subjects/ReplaySubjectConcurrencyTest.java
index b0d2e55aad..c608875071 100644
--- a/src/test/java/io/reactivex/rxjava3/subjects/ReplaySubjectConcurrencyTest.java
+++ b/src/test/java/io/reactivex/rxjava3/subjects/ReplaySubjectConcurrencyTest.java
@@ -19,12 +19,12 @@
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.AtomicReference;
 
+import io.reactivex.rxjava3.disposables.Disposable;
 import org.junit.*;
 
 import io.reactivex.rxjava3.core.*;
 import io.reactivex.rxjava3.core.Observable;
 import io.reactivex.rxjava3.core.Observer;
-import io.reactivex.rxjava3.disposables.Disposables;
 import io.reactivex.rxjava3.functions.Consumer;
 import io.reactivex.rxjava3.observers.DefaultObserver;
 import io.reactivex.rxjava3.schedulers.Schedulers;
@@ -43,7 +43,7 @@ public void run() {
 
                     @Override
                     public void subscribe(Observer o) {
-                        o.onSubscribe(Disposables.empty());
+                        o.onSubscribe(Disposable.empty());
                         System.out.println("********* Start Source Data ***********");
                         for (long l = 1; l <= 10000; l++) {
                             o.onNext(l);
@@ -153,7 +153,7 @@ public void run() {
 
                     @Override
                     public void subscribe(Observer o) {
-                        o.onSubscribe(Disposables.empty());
+                        o.onSubscribe(Disposable.empty());
                         System.out.println("********* Start Source Data ***********");
                         for (long l = 1; l <= 10000; l++) {
                             o.onNext(l);
diff --git a/src/test/java/io/reactivex/rxjava3/subjects/ReplaySubjectTest.java b/src/test/java/io/reactivex/rxjava3/subjects/ReplaySubjectTest.java
index 1993112789..e8d36a8c62 100644
--- a/src/test/java/io/reactivex/rxjava3/subjects/ReplaySubjectTest.java
+++ b/src/test/java/io/reactivex/rxjava3/subjects/ReplaySubjectTest.java
@@ -967,7 +967,7 @@ public void subscribeAfterDone() {
         ReplaySubject rp = ReplaySubject.create();
         rp.onComplete();
 
-        Disposable bs = Disposables.empty();
+        Disposable bs = Disposable.empty();
 
         rp.onSubscribe(bs);
 
diff --git a/src/test/java/io/reactivex/rxjava3/subjects/SerializedSubjectTest.java b/src/test/java/io/reactivex/rxjava3/subjects/SerializedSubjectTest.java
index 9355d77d29..2d9999380b 100644
--- a/src/test/java/io/reactivex/rxjava3/subjects/SerializedSubjectTest.java
+++ b/src/test/java/io/reactivex/rxjava3/subjects/SerializedSubjectTest.java
@@ -410,7 +410,7 @@ public void normal() {
         }
         s.onComplete();
 
-        Disposable bs = Disposables.empty();
+        Disposable bs = Disposable.empty();
         s.onSubscribe(bs);
         assertTrue(bs.isDisposed());
     }
@@ -522,7 +522,7 @@ public void onNextOnSubscribeRace() {
 
             TestObserver to = s.test();
 
-            final Disposable bs = Disposables.empty();
+            final Disposable bs = Disposable.empty();
 
             Runnable r1 = new Runnable() {
                 @Override
@@ -551,7 +551,7 @@ public void onCompleteOnSubscribeRace() {
 
             TestObserver to = s.test();
 
-            final Disposable bs = Disposables.empty();
+            final Disposable bs = Disposable.empty();
 
             Runnable r1 = new Runnable() {
                 @Override
@@ -643,8 +643,8 @@ public void onSubscribeOnSubscribeRace() {
 
             TestObserver to = s.test();
 
-            final Disposable bs1 = Disposables.empty();
-            final Disposable bs2 = Disposables.empty();
+            final Disposable bs1 = Disposable.empty();
+            final Disposable bs2 = Disposable.empty();
 
             Runnable r1 = new Runnable() {
                 @Override
diff --git a/src/test/java/io/reactivex/rxjava3/subjects/SingleSubjectTest.java b/src/test/java/io/reactivex/rxjava3/subjects/SingleSubjectTest.java
index 7c07b63f0a..521fb77fe4 100644
--- a/src/test/java/io/reactivex/rxjava3/subjects/SingleSubjectTest.java
+++ b/src/test/java/io/reactivex/rxjava3/subjects/SingleSubjectTest.java
@@ -209,7 +209,7 @@ public void onError(Throwable e) {
     public void onSubscribeDispose() {
         SingleSubject ss = SingleSubject.create();
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         ss.onSubscribe(d);
 
@@ -217,7 +217,7 @@ public void onSubscribeDispose() {
 
         ss.onSuccess(1);
 
-        d = Disposables.empty();
+        d = Disposable.empty();
 
         ss.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/subjects/UnicastSubjectTest.java b/src/test/java/io/reactivex/rxjava3/subjects/UnicastSubjectTest.java
index ba2deb2c91..a65544532b 100644
--- a/src/test/java/io/reactivex/rxjava3/subjects/UnicastSubjectTest.java
+++ b/src/test/java/io/reactivex/rxjava3/subjects/UnicastSubjectTest.java
@@ -262,7 +262,7 @@ public void afterDone() {
         UnicastSubject p = UnicastSubject.create();
         p.onComplete();
 
-        Disposable bs = Disposables.empty();
+        Disposable bs = Disposable.empty();
         p.onSubscribe(bs);
 
         p.onNext(1);
@@ -381,7 +381,7 @@ public void dispose() {
             RxJavaPlugins.reset();
         }
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         us.onSubscribe(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/subscribers/ResourceSubscriberTest.java b/src/test/java/io/reactivex/rxjava3/subscribers/ResourceSubscriberTest.java
index 190fe0e836..5a444ee9a9 100644
--- a/src/test/java/io/reactivex/rxjava3/subscribers/ResourceSubscriberTest.java
+++ b/src/test/java/io/reactivex/rxjava3/subscribers/ResourceSubscriberTest.java
@@ -81,7 +81,7 @@ public void addResources() {
 
         assertFalse(ro.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         ro.add(d);
 
@@ -106,7 +106,7 @@ public void onCompleteCleansUp() {
 
         assertFalse(ro.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         ro.add(d);
 
@@ -125,7 +125,7 @@ public void onErrorCleansUp() {
 
         assertFalse(ro.isDisposed());
 
-        Disposable d = Disposables.empty();
+        Disposable d = Disposable.empty();
 
         ro.add(d);
 
diff --git a/src/test/java/io/reactivex/rxjava3/testsupport/TestHelper.java b/src/test/java/io/reactivex/rxjava3/testsupport/TestHelper.java
index f31475ae58..3faefd13a5 100644
--- a/src/test/java/io/reactivex/rxjava3/testsupport/TestHelper.java
+++ b/src/test/java/io/reactivex/rxjava3/testsupport/TestHelper.java
@@ -520,11 +520,11 @@ public static void doubleOnSubscribe(Subscriber subscriber) {
     public static void doubleOnSubscribe(Observer observer) {
         List errors = trackPluginErrors();
         try {
-            Disposable d1 = Disposables.empty();
+            Disposable d1 = Disposable.empty();
 
             observer.onSubscribe(d1);
 
-            Disposable d2 = Disposables.empty();
+            Disposable d2 = Disposable.empty();
 
             observer.onSubscribe(d2);
 
@@ -546,11 +546,11 @@ public static void doubleOnSubscribe(Observer observer) {
     public static void doubleOnSubscribe(SingleObserver observer) {
         List errors = trackPluginErrors();
         try {
-            Disposable d1 = Disposables.empty();
+            Disposable d1 = Disposable.empty();
 
             observer.onSubscribe(d1);
 
-            Disposable d2 = Disposables.empty();
+            Disposable d2 = Disposable.empty();
 
             observer.onSubscribe(d2);
 
@@ -572,11 +572,11 @@ public static void doubleOnSubscribe(SingleObserver observer) {
     public static void doubleOnSubscribe(CompletableObserver observer) {
         List errors = trackPluginErrors();
         try {
-            Disposable d1 = Disposables.empty();
+            Disposable d1 = Disposable.empty();
 
             observer.onSubscribe(d1);
 
-            Disposable d2 = Disposables.empty();
+            Disposable d2 = Disposable.empty();
 
             observer.onSubscribe(d2);
 
@@ -598,11 +598,11 @@ public static void doubleOnSubscribe(CompletableObserver observer) {
     public static void doubleOnSubscribe(MaybeObserver observer) {
         List errors = trackPluginErrors();
         try {
-            Disposable d1 = Disposables.empty();
+            Disposable d1 = Disposable.empty();
 
             observer.onSubscribe(d1);
 
-            Disposable d2 = Disposables.empty();
+            Disposable d2 = Disposable.empty();
 
             observer.onSubscribe(d2);
 
@@ -899,11 +899,11 @@ public static  void checkDoubleOnSubscribeMaybe(Function, ? exten
                 @Override
                 protected void subscribeActual(MaybeObserver observer) {
                     try {
-                        Disposable d1 = Disposables.empty();
+                        Disposable d1 = Disposable.empty();
 
                         observer.onSubscribe(d1);
 
-                        Disposable d2 = Disposables.empty();
+                        Disposable d2 = Disposable.empty();
 
                         observer.onSubscribe(d2);
 
@@ -953,11 +953,11 @@ public static  void checkDoubleOnSubscribeMaybeToSingle(Function,
                 @Override
                 protected void subscribeActual(MaybeObserver observer) {
                     try {
-                        Disposable d1 = Disposables.empty();
+                        Disposable d1 = Disposable.empty();
 
                         observer.onSubscribe(d1);
 
-                        Disposable d2 = Disposables.empty();
+                        Disposable d2 = Disposable.empty();
 
                         observer.onSubscribe(d2);
 
@@ -1007,11 +1007,11 @@ public static  void checkDoubleOnSubscribeMaybeToObservable(Function observer) {
                     try {
-                        Disposable d1 = Disposables.empty();
+                        Disposable d1 = Disposable.empty();
 
                         observer.onSubscribe(d1);
 
-                        Disposable d2 = Disposables.empty();
+                        Disposable d2 = Disposable.empty();
 
                         observer.onSubscribe(d2);
 
@@ -1061,11 +1061,11 @@ public static  void checkDoubleOnSubscribeMaybeToFlowable(Function observer) {
                     try {
-                        Disposable d1 = Disposables.empty();
+                        Disposable d1 = Disposable.empty();
 
                         observer.onSubscribe(d1);
 
-                        Disposable d2 = Disposables.empty();
+                        Disposable d2 = Disposable.empty();
 
                         observer.onSubscribe(d2);
 
@@ -1115,11 +1115,11 @@ public static  void checkDoubleOnSubscribeSingleToMaybe(Function
                 @Override
                 protected void subscribeActual(SingleObserver observer) {
                     try {
-                        Disposable d1 = Disposables.empty();
+                        Disposable d1 = Disposable.empty();
 
                         observer.onSubscribe(d1);
 
-                        Disposable d2 = Disposables.empty();
+                        Disposable d2 = Disposable.empty();
 
                         observer.onSubscribe(d2);
 
@@ -1169,11 +1169,11 @@ public static  void checkDoubleOnSubscribeSingleToObservable(Function observer) {
                     try {
-                        Disposable d1 = Disposables.empty();
+                        Disposable d1 = Disposable.empty();
 
                         observer.onSubscribe(d1);
 
-                        Disposable d2 = Disposables.empty();
+                        Disposable d2 = Disposable.empty();
 
                         observer.onSubscribe(d2);
 
@@ -1223,11 +1223,11 @@ public static  void checkDoubleOnSubscribeSingleToFlowable(Function observer) {
                     try {
-                        Disposable d1 = Disposables.empty();
+                        Disposable d1 = Disposable.empty();
 
                         observer.onSubscribe(d1);
 
-                        Disposable d2 = Disposables.empty();
+                        Disposable d2 = Disposable.empty();
 
                         observer.onSubscribe(d2);
 
@@ -1276,11 +1276,11 @@ public static  void checkDoubleOnSubscribeMaybeToCompletable(Function observer) {
                     try {
-                        Disposable d1 = Disposables.empty();
+                        Disposable d1 = Disposable.empty();
 
                         observer.onSubscribe(d1);
 
-                        Disposable d2 = Disposables.empty();
+                        Disposable d2 = Disposable.empty();
 
                         observer.onSubscribe(d2);
 
@@ -1330,11 +1330,11 @@ public static  void checkDoubleOnSubscribeSingle(Function, ? ext
                 @Override
                 protected void subscribeActual(SingleObserver observer) {
                     try {
-                        Disposable d1 = Disposables.empty();
+                        Disposable d1 = Disposable.empty();
 
                         observer.onSubscribe(d1);
 
-                        Disposable d2 = Disposables.empty();
+                        Disposable d2 = Disposable.empty();
 
                         observer.onSubscribe(d2);
 
@@ -1438,11 +1438,11 @@ public static  void checkDoubleOnSubscribeObservable(Function observer) {
                     try {
-                        Disposable d1 = Disposables.empty();
+                        Disposable d1 = Disposable.empty();
 
                         observer.onSubscribe(d1);
 
-                        Disposable d2 = Disposables.empty();
+                        Disposable d2 = Disposable.empty();
 
                         observer.onSubscribe(d2);
 
@@ -1492,11 +1492,11 @@ public static  void checkDoubleOnSubscribeObservableToSingle(Function observer) {
                     try {
-                        Disposable d1 = Disposables.empty();
+                        Disposable d1 = Disposable.empty();
 
                         observer.onSubscribe(d1);
 
-                        Disposable d2 = Disposables.empty();
+                        Disposable d2 = Disposable.empty();
 
                         observer.onSubscribe(d2);
 
@@ -1546,11 +1546,11 @@ public static  void checkDoubleOnSubscribeObservableToMaybe(Function observer) {
                     try {
-                        Disposable d1 = Disposables.empty();
+                        Disposable d1 = Disposable.empty();
 
                         observer.onSubscribe(d1);
 
-                        Disposable d2 = Disposables.empty();
+                        Disposable d2 = Disposable.empty();
 
                         observer.onSubscribe(d2);
 
@@ -1599,11 +1599,11 @@ public static  void checkDoubleOnSubscribeObservableToCompletable(Function observer) {
                     try {
-                        Disposable d1 = Disposables.empty();
+                        Disposable d1 = Disposable.empty();
 
                         observer.onSubscribe(d1);
 
-                        Disposable d2 = Disposables.empty();
+                        Disposable d2 = Disposable.empty();
 
                         observer.onSubscribe(d2);
 
@@ -1866,11 +1866,11 @@ public static void checkDoubleOnSubscribeCompletable(Function void checkDoubleOnSubscribeCompletableToMaybe(Function void checkDoubleOnSubscribeCompletableToSingle(Function void checkBadSourceObservable(Function, Object>
                 boolean once;
                 @Override
                 protected void subscribeActual(Observer observer) {
-                    observer.onSubscribe(Disposables.empty());
+                    observer.onSubscribe(Disposable.empty());
 
                     if (once) {
                         return;
@@ -3336,7 +3336,7 @@ public Integer apply(Integer v) throws Throwable {
                 to.assertEmpty();
             } else if (result instanceof Publisher) {
                 TestSubscriberEx ts = new TestSubscriberEx<>();
-                disposable.set(Disposables.fromSubscription(ts));
+                disposable.set(Disposable.fromSubscription(ts));
 
                 ((Publisher)result)
                 .subscribe(ts);
@@ -3404,7 +3404,7 @@ public Integer apply(Integer v) throws Throwable {
                 to.assertEmpty();
             } else if (result instanceof Publisher) {
                 TestSubscriberEx ts = new TestSubscriberEx<>();
-                disposable.set(Disposables.fromSubscription(ts));
+                disposable.set(Disposable.fromSubscription(ts));
 
                 ((Publisher)result)
                 .subscribe(ts);
diff --git a/src/test/java/io/reactivex/rxjava3/testsupport/TestObserverExTest.java b/src/test/java/io/reactivex/rxjava3/testsupport/TestObserverExTest.java
index 6f8d3e25cc..e374aa67a2 100644
--- a/src/test/java/io/reactivex/rxjava3/testsupport/TestObserverExTest.java
+++ b/src/test/java/io/reactivex/rxjava3/testsupport/TestObserverExTest.java
@@ -275,7 +275,7 @@ public void createDelegate() {
 
         assertFalse(to.hasSubscription());
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         try {
             to.assertNotSubscribed();
@@ -370,7 +370,7 @@ public void assertError() {
             // expected
         }
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.assertSubscribed();
 
@@ -453,7 +453,7 @@ public void valueAndClass() {
     public void assertFailure() {
         TestObserverEx to = new TestObserverEx();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.onError(new TestException("Forced failure"));
 
@@ -476,7 +476,7 @@ public void assertFailure() {
     public void assertFuseable() {
         TestObserverEx to = new TestObserverEx();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.assertNotFuseable();
 
@@ -539,7 +539,7 @@ public void assertTerminated() {
     public void assertResult() {
         TestObserverEx to = new TestObserverEx();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.onComplete();
 
@@ -576,7 +576,7 @@ public void assertResult() {
     public void await() throws Exception {
         TestObserverEx to = new TestObserverEx();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         assertFalse(to.await(100, TimeUnit.MILLISECONDS));
 
@@ -598,7 +598,7 @@ public void await() throws Exception {
 
         final TestObserverEx to1 = new TestObserverEx();
 
-        to1.onSubscribe(Disposables.empty());
+        to1.onSubscribe(Disposable.empty());
 
         Schedulers.single().scheduleDirect(new Runnable() {
             @Override
@@ -614,7 +614,7 @@ public void run() {
     public void errors() {
         TestObserverEx to = new TestObserverEx();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         assertEquals(0, to.errors().size());
 
@@ -629,7 +629,7 @@ public void errors() {
     public void onNext() {
         TestObserverEx to = new TestObserverEx();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.assertValueCount(0);
 
@@ -660,7 +660,7 @@ public void fusionModeToString() {
     public void multipleTerminals() {
         TestObserverEx to = new TestObserverEx();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.assertNotComplete();
 
@@ -703,7 +703,7 @@ public void multipleTerminals() {
     public void assertValue() {
         TestObserverEx to = new TestObserverEx();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         try {
             to.assertValue(1);
@@ -743,7 +743,7 @@ public void onNextMisbehave() {
 
         to = new TestObserverEx();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.onNext(null);
 
@@ -754,7 +754,7 @@ public void onNextMisbehave() {
     public void assertTerminated2() {
         TestObserverEx to = new TestObserverEx();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.assertNotTerminated();
 
@@ -780,7 +780,7 @@ public void assertTerminated2() {
 
         to = new TestObserverEx();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.onError(new TestException());
         to.onComplete();
@@ -803,9 +803,9 @@ public void onSubscribe() {
 
         to = new TestObserverEx();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
-        Disposable d1 = Disposables.empty();
+        Disposable d1 = Disposable.empty();
 
         to.onSubscribe(d1);
 
@@ -816,7 +816,7 @@ public void onSubscribe() {
         to = new TestObserverEx();
         to.dispose();
 
-        d1 = Disposables.empty();
+        d1 = Disposable.empty();
 
         to.onSubscribe(d1);
 
@@ -828,7 +828,7 @@ public void onSubscribe() {
     public void assertValueSequence() {
         TestObserverEx to = new TestObserverEx();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.onNext(1);
         to.onNext(2);
@@ -868,7 +868,7 @@ public void assertEmpty() {
             // expected
         }
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.assertEmpty();
 
@@ -967,7 +967,7 @@ public boolean test(Throwable throwable) throws Exception {
     public void assertComplete() {
         TestObserverEx to = new TestObserverEx();
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         try {
             to.assertComplete();
@@ -1025,7 +1025,7 @@ public void onComplete() {
 
         });
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         try {
             to.onComplete();
@@ -1061,7 +1061,7 @@ public void onComplete() {
 
         });
 
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         try {
             to.onError(new IOException());
@@ -1323,7 +1323,7 @@ public void withTag() {
     @Test
     public void assertValuesOnly() {
         TestObserverEx to = new TestObserverEx();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
         to.assertValuesOnly();
 
         to.onNext(5);
@@ -1336,7 +1336,7 @@ public void assertValuesOnly() {
     @Test
     public void assertValuesOnlyThrowsOnUnexpectedValue() {
         TestObserverEx to = new TestObserverEx();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
         to.assertValuesOnly();
 
         to.onNext(5);
@@ -1355,7 +1355,7 @@ public void assertValuesOnlyThrowsOnUnexpectedValue() {
     @Test
     public void assertValuesOnlyThrowsWhenCompleted() {
         TestObserverEx to = new TestObserverEx();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.onComplete();
 
@@ -1370,7 +1370,7 @@ public void assertValuesOnlyThrowsWhenCompleted() {
     @Test
     public void assertValuesOnlyThrowsWhenErrored() {
         TestObserverEx to = new TestObserverEx();
-        to.onSubscribe(Disposables.empty());
+        to.onSubscribe(Disposable.empty());
 
         to.onError(new TestException());
 
diff --git a/src/test/java/io/reactivex/rxjava3/testsupport/TimesteppingScheduler.java b/src/test/java/io/reactivex/rxjava3/testsupport/TimesteppingScheduler.java
index cb9a81eca0..2615a3fbe5 100644
--- a/src/test/java/io/reactivex/rxjava3/testsupport/TimesteppingScheduler.java
+++ b/src/test/java/io/reactivex/rxjava3/testsupport/TimesteppingScheduler.java
@@ -37,7 +37,7 @@ public boolean isDisposed() {
         @Override
         public Disposable schedule(Runnable run, long delay, TimeUnit unit) {
             run.run();
-            return Disposables.disposed();
+            return Disposable.disposed();
         }
 
         @Override