significant changes to starting location handling as well as other refactoring