documentation
use of range obviates the need for the > 0 tests