path, pathWith, pathBy and tests. first pass, nothing too deep.

Needs docco