A lot of refactoring while bringing in AllPathsFirstSteps