add optional midpoint color for some solutions, rewrite algorithm for computing solution color