ranges + envelope