qc: Use lazy list for shrink generations. break up into modules in files