implemented multiplicative updates