Introduced output strategies

This starts to fix #3 and #4 

Thoughts @robdmoore / @MattDavies