Can now be run in 3 stages: generate ids, map, and load