javadocs etc
move buildBase*Selector method up
determineBaseRandomSelection to predict if caching will occur