Move range code to a subclass
Remove repeated constructor