solver generator