Should we validate parameters here ? range.end > range.start etc ? 

I know that should not happen, but in a dev environment it'll make it easier to debug things etc in the future.