diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 57b3b57224..c9309616ae 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -54,7 +54,9 @@
 
 #include <AddressManager.h>
 #include <AccountManager.h>
+#include <AmbientOcclusionEffect.h>
 #include <AudioInjector.h>
+#include <DeferredLightingEffect.h>
 #include <DependencyManager.h>
 #include <EntityScriptingInterface.h>
 #include <GlowEffect.h>
@@ -110,6 +112,7 @@
 #include "ui/TextRenderer.h"
 
 
+
 using namespace std;
 
 //  Starfield information
@@ -1914,8 +1917,8 @@ void Application::init() {
 
     _environment.init();
 
-    _deferredLightingEffect.init(this);
-    _ambientOcclusionEffect.init(this);
+    DependencyManager::get<DeferredLightingEffect>()->init(this);
+    DependencyManager::get<AmbientOcclusionEffect>()->init(this);
 
     // TODO: move _myAvatar out of Application. Move relevant code to MyAvataar or AvatarManager
     _avatarManager.init();
@@ -3070,7 +3073,7 @@ void Application::displaySide(Camera& whichCamera, bool selfAvatarOnly, RenderAr
     glEnable(GL_LIGHTING);
     glEnable(GL_DEPTH_TEST);
 
-    _deferredLightingEffect.prepare();
+    DependencyManager::get<DeferredLightingEffect>()->prepare();
 
     if (!selfAvatarOnly) {
         // draw a red sphere
@@ -3113,7 +3116,7 @@ void Application::displaySide(Camera& whichCamera, bool selfAvatarOnly, RenderAr
             PerformanceTimer perfTimer("ambientOcclusion");
             PerformanceWarning warn(Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings),
                 "Application::displaySide() ... AmbientOcclusion...");
-            _ambientOcclusionEffect.render();
+            DependencyManager::get<AmbientOcclusionEffect>()->render();
         }
     }
 
@@ -3130,7 +3133,7 @@ void Application::displaySide(Camera& whichCamera, bool selfAvatarOnly, RenderAr
     {
         PROFILE_RANGE("DeferredLighting"); 
         PerformanceTimer perfTimer("lighting");
-        _deferredLightingEffect.render();
+        DependencyManager::get<DeferredLightingEffect>()->render();
     }
 
     {
diff --git a/interface/src/Application.h b/interface/src/Application.h
index 9ca363254a..6b5bcc0770 100644
--- a/interface/src/Application.h
+++ b/interface/src/Application.h
@@ -62,8 +62,6 @@
 #include "devices/PrioVR.h"
 #include "devices/SixenseManager.h"
 #include "entities/EntityTreeRenderer.h"
-#include "renderer/AmbientOcclusionEffect.h"
-#include "renderer/DeferredLightingEffect.h"
 #include "scripting/ControllerScriptingInterface.h"
 #include "ui/BandwidthDialog.h"
 #include "ui/BandwidthMeter.h"
@@ -250,7 +248,6 @@ public:
 
     ToolWindow* getToolWindow() { return _toolWindow ; }
 
-    DeferredLightingEffect* getDeferredLightingEffect() { return &_deferredLightingEffect; }
     ControllerScriptingInterface* getControllerScriptingInterface() { return &_controllerScriptingInterface; }
 
     AvatarManager& getAvatarManager() { return _avatarManager; }
@@ -569,10 +566,6 @@ private:
 
     QSet<int> _keysPressed;
 
-
-    DeferredLightingEffect _deferredLightingEffect;
-    AmbientOcclusionEffect _ambientOcclusionEffect;
-
     Audio _audio;
 
     bool _enableProcessVoxelsThread;
diff --git a/interface/src/MetavoxelSystem.cpp b/interface/src/MetavoxelSystem.cpp
index 824f1e3313..d34bc4a594 100644
--- a/interface/src/MetavoxelSystem.cpp
+++ b/interface/src/MetavoxelSystem.cpp
@@ -21,6 +21,7 @@
 
 #include <glm/gtx/transform.hpp>
 
+#include <DeferredLightingEffect.h>
 #include <GeometryUtil.h>
 #include <SharedUtil.h>
 
@@ -470,7 +471,7 @@ void MetavoxelSystem::render() {
         glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
         glNormal3f(0.0f, 1.0f, 0.0f);
         
-        Application::getInstance()->getDeferredLightingEffect()->bindSimpleProgram();
+        DependencyManager::get<DeferredLightingEffect>()->bindSimpleProgram();
         
         foreach (const HermiteBatch& batch, _hermiteBatches) {
             batch.vertexBuffer->bind();
@@ -482,7 +483,7 @@ void MetavoxelSystem::render() {
             batch.vertexBuffer->release();
         }
         
-        Application::getInstance()->getDeferredLightingEffect()->releaseSimpleProgram();
+        DependencyManager::get<DeferredLightingEffect>()->releaseSimpleProgram();
         
         glDisableClientState(GL_VERTEX_ARRAY);
         
@@ -1981,7 +1982,7 @@ void SphereRenderer::render(const MetavoxelLOD& lod, bool contained, bool cursor
     glm::vec3 axis = glm::axis(rotation);
     glRotatef(glm::degrees(glm::angle(rotation)), axis.x, axis.y, axis.z);
     
-    Application::getInstance()->getDeferredLightingEffect()->renderSolidSphere(sphere->getScale(), 32, 32);
+    DependencyManager::get<DeferredLightingEffect>()->renderSolidSphere(sphere->getScale(), 32, 32);
     
     glPopMatrix();
 }
@@ -2002,7 +2003,7 @@ void CuboidRenderer::render(const MetavoxelLOD& lod, bool contained, bool cursor
     glRotatef(glm::degrees(glm::angle(rotation)), axis.x, axis.y, axis.z);
     glScalef(1.0f, cuboid->getAspectY(), cuboid->getAspectZ());
     
-    Application::getInstance()->getDeferredLightingEffect()->renderSolidCube(cuboid->getScale() * 2.0f);
+    DependencyManager::get<DeferredLightingEffect>()->renderSolidCube(cuboid->getScale() * 2.0f);
     
     glPopMatrix();
 }
diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp
index 4b7c5dfdf3..51fde3df43 100644
--- a/interface/src/avatar/Avatar.cpp
+++ b/interface/src/avatar/Avatar.cpp
@@ -22,6 +22,7 @@
 #include <glm/gtc/type_ptr.hpp>
 #include <glm/gtx/vector_query.hpp>
 
+#include <DeferredLightingEffect.h>
 #include <GeometryUtil.h>
 #include <GlowEffect.h>
 #include <NodeList.h>
@@ -364,7 +365,7 @@ void Avatar::render(const glm::vec3& cameraPosition, RenderMode renderMode, bool
             glm::quat orientation = getOrientation();
             foreach (const AvatarManager::LocalLight& light, Application::getInstance()->getAvatarManager().getLocalLights()) {
                 glm::vec3 direction = orientation * light.direction;
-                Application::getInstance()->getDeferredLightingEffect()->addSpotLight(position - direction * distance,
+                DependencyManager::get<DeferredLightingEffect>()->addSpotLight(position - direction * distance,
                     distance * 2.0f, glm::vec3(), light.color, light.color, 1.0f, 0.5f, 0.0f, direction,
                     LIGHT_EXPONENT, LIGHT_CUTOFF);
             }
diff --git a/interface/src/entities/RenderableBoxEntityItem.cpp b/interface/src/entities/RenderableBoxEntityItem.cpp
index 1cc1f72e93..f7b403bff2 100644
--- a/interface/src/entities/RenderableBoxEntityItem.cpp
+++ b/interface/src/entities/RenderableBoxEntityItem.cpp
@@ -16,6 +16,7 @@
 #include "InterfaceConfig.h"
 
 #include <BoxEntityItem.h>
+#include <DeferredLightingEffect.h>
 #include <ModelEntityItem.h>
 #include <PerfStat.h>
 
@@ -53,7 +54,7 @@ void RenderableBoxEntityItem::render(RenderArgs* args) {
                 glm::vec3 positionToCenter = center - position;
                 glTranslatef(positionToCenter.x, positionToCenter.y, positionToCenter.z);
                 glScalef(dimensions.x, dimensions.y, dimensions.z);
-                Application::getInstance()->getDeferredLightingEffect()->renderSolidCube(1.0f);
+                DependencyManager::get<DeferredLightingEffect>()->renderSolidCube(1.0f);
             glPopMatrix();
         glPopMatrix();
     } else {
@@ -90,7 +91,7 @@ void RenderableBoxEntityItem::render(RenderArgs* args) {
         glColor4f(getColor()[RED_INDEX] / MAX_COLOR, getColor()[GREEN_INDEX] / MAX_COLOR, 
                         getColor()[BLUE_INDEX] / MAX_COLOR, getLocalRenderAlpha());
         
-        Application::getInstance()->getDeferredLightingEffect()->bindSimpleProgram();
+        DependencyManager::get<DeferredLightingEffect>()->bindSimpleProgram();
         
         glPushMatrix();
             glTranslatef(position.x, position.y, position.z);
@@ -105,7 +106,7 @@ void RenderableBoxEntityItem::render(RenderArgs* args) {
             glPopMatrix();
         glPopMatrix();
 
-        Application::getInstance()->getDeferredLightingEffect()->releaseSimpleProgram();
+        DependencyManager::get<DeferredLightingEffect>()->releaseSimpleProgram();
         
         glDisableClientState(GL_VERTEX_ARRAY);  // disable vertex arrays
         glDisableClientState(GL_NORMAL_ARRAY);
diff --git a/interface/src/entities/RenderableLightEntityItem.cpp b/interface/src/entities/RenderableLightEntityItem.cpp
index 77dbb5da0b..48996d5b4c 100644
--- a/interface/src/entities/RenderableLightEntityItem.cpp
+++ b/interface/src/entities/RenderableLightEntityItem.cpp
@@ -15,6 +15,7 @@
 
 #include "InterfaceConfig.h"
 
+#include <DeferredLightingEffect.h>
 #include <PerfStat.h>
 #include <LightEntityItem.h>
 
@@ -65,30 +66,30 @@ void RenderableLightEntityItem::render(RenderArgs* args) {
 
     if (!disableLights) {
         if (_isSpotlight) {
-            Application::getInstance()->getDeferredLightingEffect()->addSpotLight(position, largestDiameter / 2.0f, 
+            DependencyManager::get<DeferredLightingEffect>()->addSpotLight(position, largestDiameter / 2.0f, 
                 ambient, diffuse, specular, constantAttenuation, linearAttenuation, quadraticAttenuation,
                 direction, exponent, cutoff);
         } else {
-            Application::getInstance()->getDeferredLightingEffect()->addPointLight(position, largestDiameter / 2.0f, 
+            DependencyManager::get<DeferredLightingEffect>()->addPointLight(position, largestDiameter / 2.0f, 
                 ambient, diffuse, specular, constantAttenuation, linearAttenuation, quadraticAttenuation);
         }
     }
-    bool wantDebug = false;
-    if (wantDebug) {
-        glColor4f(diffuseR, diffuseG, diffuseB, 1.0f);
-        glPushMatrix();
-            glTranslatef(position.x, position.y, position.z);
-            glm::vec3 axis = glm::axis(rotation);
-            glRotatef(glm::degrees(glm::angle(rotation)), axis.x, axis.y, axis.z);
-            glPushMatrix();
-                glm::vec3 positionToCenter = center - position;
-                glTranslatef(positionToCenter.x, positionToCenter.y, positionToCenter.z);
 
-                glScalef(dimensions.x, dimensions.y, dimensions.z);
-                Application::getInstance()->getDeferredLightingEffect()->renderWireSphere(0.5f, 15, 15);
-            glPopMatrix();
+#ifdef WANT_DEBUG
+    glColor4f(diffuseR, diffuseG, diffuseB, 1.0f);
+    glPushMatrix();
+        glTranslatef(position.x, position.y, position.z);
+        glm::vec3 axis = glm::axis(rotation);
+        glRotatef(glm::degrees(glm::angle(rotation)), axis.x, axis.y, axis.z);
+        glPushMatrix();
+            glm::vec3 positionToCenter = center - position;
+            glTranslatef(positionToCenter.x, positionToCenter.y, positionToCenter.z);
+
+            glScalef(dimensions.x, dimensions.y, dimensions.z);
+            DependencyManager::get<DeferredLightingEffect>()->renderWireSphere(0.5f, 15, 15);
         glPopMatrix();
-    }
+    glPopMatrix();
+#endif
 };
 
 bool RenderableLightEntityItem::findDetailedRayIntersection(const glm::vec3& origin, const glm::vec3& direction,
diff --git a/interface/src/entities/RenderableModelEntityItem.cpp b/interface/src/entities/RenderableModelEntityItem.cpp
index 080162dc16..13bc097f27 100644
--- a/interface/src/entities/RenderableModelEntityItem.cpp
+++ b/interface/src/entities/RenderableModelEntityItem.cpp
@@ -16,6 +16,7 @@
 #include "InterfaceConfig.h"
 
 #include <BoxEntityItem.h>
+#include <DeferredLightingEffect.h>
 #include <ModelEntityItem.h>
 #include <PerfStat.h>
 
@@ -191,7 +192,7 @@ void RenderableModelEntityItem::render(RenderArgs* args) {
                     glColor3ub(getColor()[RED_INDEX],getColor()[GREEN_INDEX],getColor()[BLUE_INDEX]);
                     glPushMatrix();
                         glTranslatef(position.x, position.y, position.z);
-                        Application::getInstance()->getDeferredLightingEffect()->renderWireCube(size);
+                        DependencyManager::get<DeferredLightingEffect>()->renderWireCube(size);
                     glPopMatrix();
                 }
             } else {
@@ -199,7 +200,7 @@ void RenderableModelEntityItem::render(RenderArgs* args) {
                 glColor3ub(getColor()[RED_INDEX],getColor()[GREEN_INDEX],getColor()[BLUE_INDEX]);
                 glPushMatrix();
                     glTranslatef(position.x, position.y, position.z);
-                    Application::getInstance()->getDeferredLightingEffect()->renderWireCube(size);
+                    DependencyManager::get<DeferredLightingEffect>()->renderWireCube(size);
                 glPopMatrix();
             }
         }
@@ -208,7 +209,7 @@ void RenderableModelEntityItem::render(RenderArgs* args) {
         glColor3ub(getColor()[RED_INDEX],getColor()[GREEN_INDEX],getColor()[BLUE_INDEX]);
         glPushMatrix();
         glTranslatef(position.x, position.y, position.z);
-        Application::getInstance()->getDeferredLightingEffect()->renderWireCube(size);
+        DependencyManager::get<DeferredLightingEffect>()->renderWireCube(size);
         glPopMatrix();
     }
 }
diff --git a/interface/src/entities/RenderableSphereEntityItem.cpp b/interface/src/entities/RenderableSphereEntityItem.cpp
index d561670be8..db10edca73 100644
--- a/interface/src/entities/RenderableSphereEntityItem.cpp
+++ b/interface/src/entities/RenderableSphereEntityItem.cpp
@@ -15,6 +15,8 @@
 
 #include "InterfaceConfig.h"
 
+#include <DependencyManager.h>
+#include <DeferredLightingEffect.h>
 #include <PerfStat.h>
 #include <SphereEntityItem.h>
 
@@ -23,7 +25,6 @@
 #include "EntityTreeRenderer.h"
 #include "RenderableSphereEntityItem.h"
 
-
 EntityItem* RenderableSphereEntityItem::factory(const EntityItemID& entityID, const EntityItemProperties& properties) {
     return new RenderableSphereEntityItem(entityID, properties);
 }
@@ -51,7 +52,7 @@ void RenderableSphereEntityItem::render(RenderArgs* args) {
             glTranslatef(positionToCenter.x, positionToCenter.y, positionToCenter.z);
 
             glScalef(dimensions.x, dimensions.y, dimensions.z);
-            Application::getInstance()->getDeferredLightingEffect()->renderSolidSphere(0.5f, 15, 15);
+            DependencyManager::get<DeferredLightingEffect>()->renderSolidSphere(0.5f, 15, 15);
         glPopMatrix();
     glPopMatrix();
 };
diff --git a/interface/src/renderer/Model.cpp b/interface/src/renderer/Model.cpp
index 877f43a563..15db8e4361 100644
--- a/interface/src/renderer/Model.cpp
+++ b/interface/src/renderer/Model.cpp
@@ -17,6 +17,7 @@
 #include <glm/gtx/norm.hpp>
 
 #include <CapsuleShape.h>
+#include <DeferredLightingEffect.h>
 #include <GeometryUtil.h>
 #include <GlowEffect.h>
 #include <PathUtils.h>
@@ -493,7 +494,7 @@ bool Model::renderTriangleProxies() {
                 glPushMatrix();
                     glTranslatef(center.x, center.y, center.z);
                     glScalef(dimensions.x, dimensions.y, dimensions.z);
-                    Application::getInstance()->getDeferredLightingEffect()->renderWireCube(1.0f);
+                    DependencyManager::get<DeferredLightingEffect>()->renderWireCube(1.0f);
                 glPopMatrix();
             }
 
diff --git a/interface/src/ui/overlays/Cube3DOverlay.cpp b/interface/src/ui/overlays/Cube3DOverlay.cpp
index f518c309a1..c61d68f05d 100644
--- a/interface/src/ui/overlays/Cube3DOverlay.cpp
+++ b/interface/src/ui/overlays/Cube3DOverlay.cpp
@@ -13,6 +13,7 @@
 
 #include <QGLWidget>
 
+#include <DeferredLightingEffect.h>
 #include <GlowEffect.h>
 #include <SharedUtil.h>
 #include <StreamUtils.h>
@@ -75,7 +76,7 @@ void Cube3DOverlay::render(RenderArgs* args) {
                     glPushMatrix();
                         glColor4f(1.0f, 1.0f, 1.0f, alpha);
                         glScalef(dimensions.x * _borderSize, dimensions.y * _borderSize, dimensions.z * _borderSize);
-                        Application::getInstance()->getDeferredLightingEffect()->renderSolidCube(1.0f);
+                        DependencyManager::get<DeferredLightingEffect>()->renderSolidCube(1.0f);
                     glPopMatrix();
                     glDepthMask(GL_TRUE);
                 }
@@ -83,7 +84,7 @@ void Cube3DOverlay::render(RenderArgs* args) {
                 glPushMatrix();
                     glColor4f(color.red / MAX_COLOR, color.green / MAX_COLOR, color.blue / MAX_COLOR, alpha);
                     glScalef(dimensions.x, dimensions.y, dimensions.z);
-                    Application::getInstance()->getDeferredLightingEffect()->renderSolidCube(1.0f);
+                    DependencyManager::get<DeferredLightingEffect>()->renderSolidCube(1.0f);
                 glPopMatrix();
             } else {
                 glLineWidth(_lineWidth);
@@ -117,7 +118,7 @@ void Cube3DOverlay::render(RenderArgs* args) {
 
                 } else {
                     glScalef(dimensions.x, dimensions.y, dimensions.z);
-                    Application::getInstance()->getDeferredLightingEffect()->renderWireCube(1.0f);
+                    DependencyManager::get<DeferredLightingEffect>()->renderWireCube(1.0f);
                 }
             }
         glPopMatrix();
diff --git a/interface/src/ui/overlays/Sphere3DOverlay.cpp b/interface/src/ui/overlays/Sphere3DOverlay.cpp
index eb95672399..522902194f 100644
--- a/interface/src/ui/overlays/Sphere3DOverlay.cpp
+++ b/interface/src/ui/overlays/Sphere3DOverlay.cpp
@@ -62,7 +62,6 @@ void Sphere3DOverlay::render(RenderArgs* args) {
             glm::vec3 positionToCenter = center - position;
             glTranslatef(positionToCenter.x, positionToCenter.y, positionToCenter.z);
             glScalef(dimensions.x, dimensions.y, dimensions.z);
-            //Application::getInstance()->getDeferredLightingEffect()->renderSolidCube(1.0f);
             if (_isSolid) {
                 DependencyManager::get<GeometryCache>()->renderSphere(1.0f, SLICES, SLICES); 
             } else {
diff --git a/interface/src/renderer/AmbientOcclusionEffect.cpp b/libraries/render-utils/src/AmbientOcclusionEffect.cpp
similarity index 98%
rename from interface/src/renderer/AmbientOcclusionEffect.cpp
rename to libraries/render-utils/src/AmbientOcclusionEffect.cpp
index 4362d21645..b9289204c7 100644
--- a/interface/src/renderer/AmbientOcclusionEffect.cpp
+++ b/libraries/render-utils/src/AmbientOcclusionEffect.cpp
@@ -10,20 +10,20 @@
 //
 
 // include this before QOpenGLFramebufferObject, which includes an earlier version of OpenGL
-#include "InterfaceConfig.h"
+#include <gpu/GPUConfig.h>
 
 #include <QOpenGLFramebufferObject>
 
 #include <glm/gtc/random.hpp>
 
-#include <GlowEffect.h>
 #include <PathUtils.h>
-#include <ProgramObject.h>
-#include <RenderUtil.h>
 #include <SharedUtil.h>
-#include <TextureCache.h>
 
 #include "AmbientOcclusionEffect.h"
+#include "GlowEffect.h"
+#include "ProgramObject.h"
+#include "RenderUtil.h"
+#include "TextureCache.h"
 
 const int ROTATION_WIDTH = 4;
 const int ROTATION_HEIGHT = 4;
diff --git a/interface/src/renderer/AmbientOcclusionEffect.h b/libraries/render-utils/src/AmbientOcclusionEffect.h
similarity index 81%
rename from interface/src/renderer/AmbientOcclusionEffect.h
rename to libraries/render-utils/src/AmbientOcclusionEffect.h
index 444b76a3c9..1ee7269480 100644
--- a/interface/src/renderer/AmbientOcclusionEffect.h
+++ b/libraries/render-utils/src/AmbientOcclusionEffect.h
@@ -12,19 +12,24 @@
 #ifndef hifi_AmbientOcclusionEffect_h
 #define hifi_AmbientOcclusionEffect_h
 
-#include <ViewStateInterface.h>
+#include <DependencyManager.h>
+
+#include "ViewStateInterface.h"
 
 class ProgramObject;
 
 /// A screen space ambient occlusion effect.  See John Chapman's tutorial at
 /// http://john-chapman-graphics.blogspot.co.uk/2013/01/ssao-tutorial.html for reference.
-class AmbientOcclusionEffect {
+class AmbientOcclusionEffect: public DependencyManager::Dependency {
 public:
     
     void init(ViewStateInterface* viewState);
     void render();
     
 private:
+    AmbientOcclusionEffect() {}
+    virtual ~AmbientOcclusionEffect() {}
+    friend class DependencyManager;
 
     ProgramObject* _occlusionProgram;
     int _nearLocation;
diff --git a/interface/src/renderer/DeferredLightingEffect.cpp b/libraries/render-utils/src/DeferredLightingEffect.cpp
similarity index 98%
rename from interface/src/renderer/DeferredLightingEffect.cpp
rename to libraries/render-utils/src/DeferredLightingEffect.cpp
index d3145b9d5d..ff2df95746 100644
--- a/interface/src/renderer/DeferredLightingEffect.cpp
+++ b/libraries/render-utils/src/DeferredLightingEffect.cpp
@@ -10,18 +10,28 @@
 //
 
 // include this before QOpenGLFramebufferObject, which includes an earlier version of OpenGL
-#include "InterfaceConfig.h"
+#include <gpu/GPUConfig.h>
+
+
+// TODO: remove these once we migrate away from GLUT calls
+#if defined(__APPLE__)
+#include <GLUT/glut.h>
+#else
+#include <GL/glut.h>
+#endif
 
 #include <QOpenGLFramebufferObject>
 
-#include <GeometryCache.h>
 #include <GLMHelpers.h>
-#include <GlowEffect.h>
 #include <PathUtils.h>
-#include <RenderUtil.h>
-#include <TextureCache.h>
+
 
 #include "DeferredLightingEffect.h"
+#include "GeometryCache.h"
+#include "GlowEffect.h"
+#include "RenderUtil.h"
+#include "TextureCache.h"
+
 
 void DeferredLightingEffect::init(ViewStateInterface* viewState) {
     _viewState = viewState;
diff --git a/interface/src/renderer/DeferredLightingEffect.h b/libraries/render-utils/src/DeferredLightingEffect.h
similarity index 94%
rename from interface/src/renderer/DeferredLightingEffect.h
rename to libraries/render-utils/src/DeferredLightingEffect.h
index 40182e0917..5dcd7d35f4 100644
--- a/interface/src/renderer/DeferredLightingEffect.h
+++ b/libraries/render-utils/src/DeferredLightingEffect.h
@@ -14,14 +14,16 @@
 
 #include <QVector>
 
-#include <ProgramObject.h>
+#include <DependencyManager.h>
 #include <SharedUtil.h>
-#include <ViewStateInterface.h>
+
+#include "ProgramObject.h"
+#include "ViewStateInterface.h"
 
 class PostLightingRenderable;
 
 /// Handles deferred lighting for the bits that require it (voxels, metavoxels...)
-class DeferredLightingEffect {
+class DeferredLightingEffect: public DependencyManager::Dependency {
 public:
     
     void init(ViewStateInterface* viewState);
@@ -69,6 +71,9 @@ public:
     void render();
 
 private:
+    DeferredLightingEffect() { }
+    virtual ~DeferredLightingEffect() { }
+    friend class DependencyManager;
 
     class LightLocations {
     public: