Simplified the base cache provider, no generics, these will be taken care of by extensions