extend range to support forward and backward attributes