finally finished RangeApplied UNTESTED