In the Admin application, the Provider pattern is used alongside Contexts in order to grant child/wrapped components access to the managed states, as well as centralizing actions that affect or manipulate Contexts. In particular, there exists a set of global provider components that are necessary for the basic functions of the Admin application. These are components that should exist and be accessible for any route.