move the heavy logic out into testable libraries
start some testing
remove the comments that are now in the readme
handle not found paths with a show