Refactored stream workflows to better show underlying abstractions.
Controller and worker property testing updated/improved.
Reorganised code into packages.