some solver improvement