refactor to allow a query of the user for paths

add getPath() which handles the logic for getting a valid path.
add getUserValue() which handles the query to the user. currently
returns none.