soapy: replace double pair with range struct