Assign starting locations

Mostly done but may want to improve unit test a bit.