i think that gets at least the intial parsing factored out to modules.
it's at least enough for me to start writing some tests for.