rework methods and clairfy File/FileSystem interactions
fix exception namespacing/syntax bug
add documentation and minor fixes
ditch hook in favor of per-route middleware function