public static function visit(ApplicationInterface $application, ManagerNodeInterface $managerConfiguration)
{
// create the storage for the reflection classes and the application specific aliases
$reflectionClasses = new GenericStackable();
$namingDirectoryAliases = new GenericStackable();
// create and initialize the DI provider instance
$provider = new Provider();
$provider->injectApplication($application);
$provider->injectReflectionClasses($reflectionClasses);
$provider->injectNamingDirectoryAliases($namingDirectoryAliases);
// attach the instance
$application->addManager($provider, $managerConfiguration);
}