otherwise client code will end up calling the version in FileBase, which has unnecessary synchronisation