Modify Core to allow more exact solution state description

Solve problem 31