#102 restructure the 'solution' type hierarchy