File renderer

Is this the kind of thing you wanted for #108 ?  I'm not sure I've done the module bit correct.  My test works but haven't tried it from a sample app yet.  Just wanted to check I was on the right track.