updated iter_optim interface