Proper implementation of normal smoothing