allow solve to take set as first argument