initial VFS work
converted to an exception-based API for the FS/VFS