Updated solver