extracted interface from ContextProvider