huge refactor in prep for validating paths