``` Presenter { val stateRelay = BehalviourRelay...
# rx
u
Copy code
Presenter {

	val stateRelay = BehalviourRelay.createDefault(PresenterState())
	val stateObservable: Observable<PresenterState>
		get() = stateRelay
	
	init {
      disposables += downloadManager.eventsObservable(...)
         .subscribe { events ->
         	when(event) {
         		is Started -> ...
         		is Error -> ...
         		is Success -> {
					stateRelay.accept { it.copy(listOfData = event.listOfData )}
         		}
         	}
	}

	fun downloadPleaseClick() {
		// Imperative trigger
		downloadManager.downloadSomething(param)
	}

	fun onDestroy() {
	   disposables.clear()
	}

}