     var lastFrameStart: CFAbsoluteTime!
     var thisFrameStart: CFAbsoluteTime!
     
-    weak var metalViewDelegate: ViewDelegate?
+    weak var renderDelegate: RenderDelegate?
+    weak var updateDelegate: UpdateDelegate?
     
     override init(frame frameRect:CGRect, device:MTLDevice?) {
         inflightResources = InflightResourceManager()

            return
        }
        
        setupRenderPassDescriptor(drawable)
        self.metalViewDelegate?.renderObjects(drawable, renderPassDescriptor: renderPassDescriptor!, commandBuffer: cmdBuffer)
        
        cmdBuffer.presentDrawable(drawable)
        cmdBuffer.commit()

        //move to scene renderer?
    }
    
    func setupRenderPassDescriptor(drawable: CAMetalDrawable, renderPassDescriptor: MTLRenderPassDescriptor) -> MTLRenderPassDescriptor {
        return renderPassDescriptor
    }
    
    func reshape(view:MTKView, drawableSizeWillChange size: CGSize) {
