updated range generator