This is storehaus related code so I think we can reasonably say it should be consistent with it.

Do we have a situation where the dependency injection can't be done with a readable store? ClientStore should probably be exposed as just a readable store anyway, it would make the most sense so it can be combined seamlessly with combinators like the BatchedReadableStore, or TTLCache's ?