bool initialize() { bool returnVal = true; //initialize stuff //shader needs config for program stuff to setup our shaders returnVal = returnVal && simShaderManager.giveLinks(&simConfig); //config needs links to everything so it can let everyone access modules from anywhere returnVal = returnVal && simConfig.giveLinks(&simShaderManager, &simEntities); //renderer needs config for access to it and other modules returnVal = returnVal && simRenderer.giveLinks(&simConfig); return returnVal; }