add: optmization method