executable implementation, modulo printing of results.  next step is to write boring printers and parsers for the framework.