introduce Solvable.kind to remove the need for strcmp()/strchr() when