move more code to IPathFinder