avoid side effects in validate
pull static methods into a companion
use require to clean-up count
lazy eval when possible
move the work into nucleotideCounts