breaking out a parser and solver and runner