solver part