updated subgradient method