Add support for ranged locations

@mattwynne are we thinking along the same lines?