improve - smoothing algo is less naive