Although this is at present a command line tool, we need to think about how the code communicates with the user. - How do we report errors? - Do we need cool ascii art? - Do we want many input flags e.g. `verbose` or keep it as simple as possible?