move util stuff out to be easier to test
add a range test
explain test
test ranges
update pull-level
handle {min, max} ranges
1.7.0