Does any of this class need to be public rather than protected? Looks like the calls to it are all in BasicDatastore.