Introducing Reactor design

Also minor code cleanup/improved javadoc etc.