added interchangeable filesystem
added support for caching remote files