Use custom variables instead of defvar-local.
Ignore non-existent directories in path
Allow caching - at least until we can write a test for it
Make variable names consistent
Documentation cleanup