make cache and provider optional congis