Add possible_values
Helper methods
Implement solver with help from Tom Ballinger :)