DRY and Scalify _diffuse(/4), _(up/down)hill(/4)