added modified solver