I think you could dispose of just the subscriptions to the signals (`selfDisposable`, `signalDisposable`). That will cause the subjects to be deallocated and thus disposed.