writing unit tests, handling dependencies, isReversed and rangeOptions differently.