Nice work,
Arguably two of the most important operators are missing.
If you're not sure how to do a simple implementation I have one laying somewhere - it's basically flatMap but unsubscribing from the earlier subscription and only taking the elements from the last observable.