introduce Range; add padTo