Added a bunch of new units (and maybe fixed some other bits? This wasn't committed when I did it...)