Fixes #27. This is all kind of clunky right now, it would be much better to just standardize the `run()` function pattern.