solver design