First working attempt with RxJava

Definitely needs to be cleaned up