fix gradient opt