Separating out and cleaning up shared functionality
Evaluator was missing preprocessing
Consistency
Nicer printing
Using shared printing/output functions