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