Next step is to cache things specific to major, refactor a /lot/, and
make actually usable (either by humans or scripts, so I can connect it
to a web frontend)