Abstract implementations of datastores