update to optim algo