blockingSIngle vs blocking First
first() — block until the Observable emits an item, then return the first item
emitted by the Observable
single( ) — if the Observable completes after emitting a single item, return
that item, otherwise throw an exception