Separating implementation of solver in anticipation of experimenting with another parsing method