improved ranges
added some Exhaustive JavaDocs
added ExhaustiveTest