Using defer instead of creating an observable straght away.
Replacing the custom operator by a simpler function