vanilla implementation of Reactive extensions using Java 8