Implemented filesystem cache, one and only (see #1415)

why does the interface distinguish between filsystem implementations and non-filesystem ones ?