backing up code for the night, lots of work to do still. I want there to
be a few more options in terms of how it can work (including a simple textwriter)