diff --git a/src/Mara/RadiumPlayer.cpp b/src/Mara/RadiumPlayer.cpp
index 6d93ff075facbbada9471a927c9de78d1ba16d54..eb33a9acb3a0355156c5fa9988aa270199965216 100644
--- a/src/Mara/RadiumPlayer.cpp
+++ b/src/Mara/RadiumPlayer.cpp
@@ -43,7 +43,7 @@ using namespace Ra::Core::Utils; // for LOG( logLEVEL )
 #include <Engine/Data/ShaderConfigFactory.hpp>
 #include <RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.hpp>
 #include <RadiumNBR/NodeGraph/PremadeNodes/Demo/SimpleNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/Demo/DifferenceNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.hpp>
 
 template <typename T>
 class NodeCreator
diff --git a/src/libRender/CMakeLists.txt b/src/libRender/CMakeLists.txt
index d8de08652cb070a7ca9ea4edac2713626177288e..237cc2f63f89d67497ebb87d0976c0f14fd33f5b 100644
--- a/src/libRender/CMakeLists.txt
+++ b/src/libRender/CMakeLists.txt
@@ -32,19 +32,24 @@ set(sources
     RadiumNBR/Renderer/FakeNBRRenderer.cpp
     RadiumNBR/Renderer/NodeGraphController.cpp
 
-    RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/TextureNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/UINode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.cpp
+
+    RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.cpp
+
+    RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.cpp
+
+    RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.cpp
 
     RadiumNBR/NodeGraph/RenderGraph.cpp
     RadiumNBR/NodeGraph/NodeFactory.cpp
@@ -84,29 +89,36 @@ set(public_headers
     RadiumNBR/NodeGraph/RenderGraph.hpp
     RadiumNBR/NodeGraph/NodeFactory.hpp
 
-    RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/DataNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/FilterNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/FilterROByNameNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/FilterROByTypeNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/SinkNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/SourceNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/ColorTextureNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/DepthTextureNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/TextureNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/UINode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.hpp
+
+    RadiumNBR/NodeGraph/PremadeNodes/Sources/DataNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/Sources/SourceNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/Sources/ColorTextureNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/Sources/DepthTextureNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.hpp
+
+    RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByNameNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByTypeNode.hpp
+
+    RadiumNBR/NodeGraph/PremadeNodes/Sinks/SinkNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp
+
+    RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.hpp
+
     RadiumNBR/NodeGraph/PremadeNodes/Demo/SimpleNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/Demo/DifferenceNode.hpp
+
     RadiumNBR/NodeGraph/PremadeNodes/PremadeNodesIncludes.hpp
 	
     # MULTI PASS    
diff --git a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/FilterRenderObjectNameModel.hpp b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/FilterRenderObjectNameModel.hpp
index 1e9e31daffa35c166768757ea3ebd383f3f4c350..b97626e72c2e7ae3426d420096e448342c75166f 100644
--- a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/FilterRenderObjectNameModel.hpp
+++ b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/FilterRenderObjectNameModel.hpp
@@ -7,7 +7,7 @@
 
 #include "ConnectionStatusData.hpp"
 
-#include <RadiumNBR/NodeGraph/PremadeNodes/FilterROByNameNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByNameNode.hpp>
 #include <RadiumNBR/NodeGraph/RenderGraph.hpp>
 
 #include <iostream>
diff --git a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/FilterRenderObjectTypeModel.hpp b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/FilterRenderObjectTypeModel.hpp
index 2ff67b88f26aa11a23c0e95fbbf6c82d9559d0fe..c74ca912a919e0aa5af6882aabcc37441ecdde3d 100644
--- a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/FilterRenderObjectTypeModel.hpp
+++ b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/FilterRenderObjectTypeModel.hpp
@@ -7,7 +7,7 @@
 
 #include "ConnectionStatusData.hpp"
 
-#include <RadiumNBR/NodeGraph/PremadeNodes/FilterROByTypeNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByTypeNode.hpp>
 #include <RadiumNBR/NodeGraph/RenderGraph.hpp>
 
 #include <iostream>
diff --git a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.hpp b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.hpp
index a8df38c5ae7f8037c8cea46c9fd88fed8e561d53..bf59f684e713cc5c53adeed9cc476e718db3c3d6 100644
--- a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.hpp
+++ b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.hpp
@@ -10,8 +10,8 @@
 #include <RadiumNBR/Gui/RenderGraphEditor/ConnectionStatusData.hpp>
 
 #include <RadiumNBR/NodeGraph/Node.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DataNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/DataNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp>
 
 #include <RadiumNBR/Gui/RendererPanel.hpp>
 
diff --git a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceColorTextureModel.hpp b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceColorTextureModel.hpp
index bdaee18c6b87925e59a25e490512db02de566983..8cffa69cfab2c708fb36d02b5c8d13b850b6bf1c 100644
--- a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceColorTextureModel.hpp
+++ b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceColorTextureModel.hpp
@@ -6,7 +6,7 @@
 
 #include <RadiumNBR/Gui/RenderGraphEditor/ConnectionStatusData.hpp>
 
-#include <RadiumNBR/NodeGraph/PremadeNodes/ColorTextureNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/ColorTextureNode.hpp>
 #include <RadiumNBR/NodeGraph/RenderGraph.hpp>
 
 #include <iostream>
diff --git a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceDepthTextureModel.hpp b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceDepthTextureModel.hpp
index 60db7efea72d390f16fdbf75ecd08ad53ecb7e24..868de2207f6ecff60fd246c437862cfea99aea99 100644
--- a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceDepthTextureModel.hpp
+++ b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceDepthTextureModel.hpp
@@ -6,7 +6,7 @@
 
 #include "ConnectionStatusData.hpp"
 
-#include <RadiumNBR/NodeGraph/PremadeNodes/DepthTextureNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/DepthTextureNode.hpp>
 #include <RadiumNBR/NodeGraph/RenderGraph.hpp>
 
 #include <iostream>
diff --git a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceNodeModel.hpp b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceNodeModel.hpp
index a309e7a0ec96899a6270b3db9d4a2972de4517e9..b056e99b7bbfb21413f1bd6c3a6de7c28150c878 100644
--- a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceNodeModel.hpp
+++ b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceNodeModel.hpp
@@ -2,7 +2,7 @@
 #include <nodes/NodeDataModel>
 #include <RadiumNBR/Gui/RenderGraphEditor/ConnectionStatusData.hpp>
 
-#include <RadiumNBR/NodeGraph/PremadeNodes/SourceNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/SourceNode.hpp>
 #include <RadiumNBR/NodeGraph/RenderGraph.hpp>
 
 template <typename T>
diff --git a/src/libRender/RadiumNBR/NodeBasedRenderer.hpp b/src/libRender/RadiumNBR/NodeBasedRenderer.hpp
index 45c3be8230e598aac310dd91da0c9721112c95db..af9b439eb689de4ca1c7545503961b1eb50fd998 100644
--- a/src/libRender/RadiumNBR/NodeBasedRenderer.hpp
+++ b/src/libRender/RadiumNBR/NodeBasedRenderer.hpp
@@ -2,7 +2,7 @@
 #include <RadiumNBR/NodeBasedRendererMacro.hpp>
 
 #include <RadiumNBR/NodeGraph/RenderGraph.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp>
 
 #include <Core/Resources/Resources.hpp>
 #include <Engine/Rendering/Renderer.hpp>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..fd2dc6d29d873520ebca84436365302eb803a17a
--- /dev/null
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.cpp
@@ -0,0 +1,112 @@
+#include <RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.hpp>
+
+DifferenceNode::DifferenceNode( const std::string& name ) : Node( name ) {
+    auto portInColor1 = new PortIn<NodeTypeTexture>( "inColorTexture1", this );
+    addInput( portInColor1 );
+    portInColor1->mustBeLinked();
+    auto portInColor2 = new PortIn<NodeTypeTexture>( "inColorTexture2", this );
+    addInput( portInColor2 );
+    portInColor2->mustBeLinked();
+
+    Ra::Engine::Data::TextureParameters colorTexParams = { "Color Texture",
+                                                           gl::GL_TEXTURE_2D,
+                                                           1,
+                                                           1,
+                                                           1,
+                                                           gl::GL_RGBA,
+                                                           gl::GL_RGBA32F,
+                                                           gl::GL_FLOAT,
+                                                           gl::GL_CLAMP_TO_EDGE,
+                                                           gl::GL_CLAMP_TO_EDGE,
+                                                           gl::GL_CLAMP_TO_EDGE,
+                                                           gl::GL_LINEAR,
+                                                           gl::GL_LINEAR,
+                                                           nullptr };
+    m_colorTexture = new Ra::Engine::Data::Texture( colorTexParams );
+
+    auto portOutColorTex = new PortOut<NodeTypeTexture>( "outColorTexture", this );
+    addOutput( portOutColorTex, m_colorTexture );
+}
+
+void DifferenceNode::init() {
+    m_framebuffer = new globjects::Framebuffer();
+
+    Ra::Core::Geometry::TriangleMesh mesh =
+        Ra::Core::Geometry::makeZNormalQuad( Ra::Core::Vector2( -1.f, 1.f ) );
+    auto qm = std::make_unique<Ra::Engine::Data::Mesh>( "caller" );
+    qm->loadGeometry( std::move( mesh ) );
+    m_quadMesh = std::move( qm );
+    m_quadMesh->updateGL();
+
+    const std::string composeVertexShader{ "layout (location = 0) in vec3 in_position;\n"
+                                           "out vec2 varTexcoord;\n"
+                                           "void main()\n"
+                                           "{\n"
+                                           "  gl_Position = vec4(in_position, 1.0);\n"
+                                           "  varTexcoord = (in_position.xy + 1.0) * 0.5;\n"
+                                           "}\n" };
+    const std::string composeFragmentShader{
+        "layout (location = 0) out vec4 out_tex;\n"
+        "uniform sampler2D tex1_sampler;\n"
+        "uniform sampler2D tex2_sampler;\n"
+        "in vec2 varTexcoord;\n"
+        "void main() {\n"
+        "   out_tex = texture(tex1_sampler, varTexcoord) - texture(tex2_sampler, varTexcoord);\n"
+        "}" };
+
+    Ra::Engine::Data::ShaderConfiguration config{ "ComposeDifference" };
+    config.addShaderSource( Ra::Engine::Data::ShaderType::ShaderType_VERTEX, composeVertexShader );
+    config.addShaderSource( Ra::Engine::Data::ShaderType::ShaderType_FRAGMENT,
+                            composeFragmentShader );
+    auto added = m_shaderMngr->addShaderProgram( config );
+    if ( added ) { m_shader = added.value(); }
+}
+
+void DifferenceNode::update() {}
+
+void DifferenceNode::execute() {
+    Ra::Engine::Data::RenderParameters inPassParams;
+
+    // Texture 1
+    auto inputColor1           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    NodeTypeTexture* texColor1 = &inputColor1->getData();
+
+    // Texture 2
+    auto inputColor2           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    NodeTypeTexture* texColor2 = &inputColor2->getData();
+
+    m_framebuffer->bind();
+    m_framebuffer->attachTexture( gl::GL_COLOR_ATTACHMENT0, m_colorTexture->texture() );
+
+    const gl::GLenum buffers[] = { gl::GL_COLOR_ATTACHMENT0 };
+    gl::glDrawBuffers( 1, buffers );
+    gl::glDisable( gl::GL_DEPTH_TEST );
+    gl::glDepthMask( gl::GL_FALSE );
+    gl::glColorMask( gl::GL_TRUE, gl::GL_TRUE, gl::GL_TRUE, gl::GL_TRUE );
+
+    float clearBlack[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
+    gl::glClearBufferfv( gl::GL_COLOR, 0, clearBlack );
+
+    gl::glDisable( gl::GL_BLEND );
+
+    m_shader->bind();
+    m_shader->setUniform( "tex1_sampler", texColor1, 0 );
+    m_shader->setUniform( "tex2_sampler", texColor2, 1 );
+
+    m_quadMesh->render( m_shader );
+
+    m_framebuffer->detach( gl::GL_COLOR_ATTACHMENT0 );
+    m_framebuffer->unbind();
+}
+
+void DifferenceNode::destroy() {
+    delete m_framebuffer;
+    delete m_colorTexture;
+}
+
+void DifferenceNode::resize( uint32_t width, uint32_t height ) {
+    m_colorTexture->resize( width, height );
+}
+
+void DifferenceNode::buildRenderTechnique( const Ra::Engine::Rendering::RenderObject* ro,
+                           Ra::Engine::Rendering::RenderTechnique& rt ) const {}
\ No newline at end of file
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..c5aea5c84d03a2be67aef74523b60dff949bc2f2
--- /dev/null
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.hpp
@@ -0,0 +1,34 @@
+#pragma once
+#include <RadiumNBR/NodeGraph/Node.hpp>
+
+#include <globjects/Framebuffer.h>
+
+#include <Core/Geometry/MeshPrimitives.hpp>
+#include <Engine/Data/Mesh.hpp>
+#include <Engine/Data/RenderParameters.hpp>
+
+class NodeBasedRenderer_LIBRARY_API DifferenceNode : public Node
+{
+  public:
+    explicit DifferenceNode( const std::string& name );
+
+    void init() override;
+    void update() override;
+    void execute() override;
+    void destroy() override;
+    void resize( uint32_t width, uint32_t height ) override;
+
+    void buildRenderTechnique( const Ra::Engine::Rendering::RenderObject* ro,
+                               Ra::Engine::Rendering::RenderTechnique& rt ) const override;
+
+    static const std::string getTypename() { return "Difference"; }
+
+  private:
+    Ra::Engine::Data::Texture* m_colorTexture{ nullptr };
+
+    std::unique_ptr<Ra::Engine::Data::Displayable> m_quadMesh{ nullptr };
+
+    const Ra::Engine::Data::ShaderProgram* m_shader{ nullptr };
+
+    globjects::Framebuffer* m_framebuffer{ nullptr };
+};
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..6cdf64037cf8868a0d056b49bb358c64a93f9d91
--- /dev/null
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.cpp
@@ -0,0 +1,113 @@
+#include <RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.hpp>
+
+SumNode::SumNode( const std::string& name ) : Node( name ) {
+    auto portInColor1 = new PortIn<NodeTypeTexture>( "inColorTexture1", this );
+    addInput( portInColor1 );
+    portInColor1->mustBeLinked();
+    auto portInColor2 = new PortIn<NodeTypeTexture>( "inColorTexture2", this );
+    addInput( portInColor2 );
+    portInColor2->mustBeLinked();
+
+    Ra::Engine::Data::TextureParameters colorTexParams = { "Color Texture",
+                                                           gl::GL_TEXTURE_2D,
+                                                           1,
+                                                           1,
+                                                           1,
+                                                           gl::GL_RGBA,
+                                                           gl::GL_RGBA32F,
+                                                           gl::GL_FLOAT,
+                                                           gl::GL_CLAMP_TO_EDGE,
+                                                           gl::GL_CLAMP_TO_EDGE,
+                                                           gl::GL_CLAMP_TO_EDGE,
+                                                           gl::GL_LINEAR,
+                                                           gl::GL_LINEAR,
+                                                           nullptr };
+    m_colorTexture = new Ra::Engine::Data::Texture( colorTexParams );
+
+    auto portOutColorTex = new PortOut<NodeTypeTexture>( "outColorTexture", this );
+    addOutput( portOutColorTex, m_colorTexture );
+}
+
+void SumNode::init() {
+    m_framebuffer = new globjects::Framebuffer();
+
+    Ra::Core::Geometry::TriangleMesh mesh =
+        Ra::Core::Geometry::makeZNormalQuad( Ra::Core::Vector2( -1.f, 1.f ) );
+    auto qm = std::make_unique<Ra::Engine::Data::Mesh>( "caller" );
+    qm->loadGeometry( std::move( mesh ) );
+    m_quadMesh = std::move( qm );
+    m_quadMesh->updateGL();
+
+    const std::string composeVertexShader{ "layout (location = 0) in vec3 in_position;\n"
+                                           "out vec2 varTexcoord;\n"
+                                           "void main()\n"
+                                           "{\n"
+                                           "  gl_Position = vec4(in_position, 1.0);\n"
+                                           "  varTexcoord = (in_position.xy + 1.0) * 0.5;\n"
+                                           "}\n" };
+    const std::string composeFragmentShader{
+        "layout (location = 0) out vec4 out_tex;\n"
+        "uniform sampler2D tex1_sampler;\n"
+        "uniform sampler2D tex2_sampler;\n"
+        "in vec2 varTexcoord;\n"
+        "void main() {\n"
+        "   out_tex = texture(tex1_sampler, varTexcoord) + texture(tex2_sampler, varTexcoord);\n"
+        "}" };
+
+    Ra::Engine::Data::ShaderConfiguration config{ "ComposeSum" };
+    config.addShaderSource( Ra::Engine::Data::ShaderType::ShaderType_VERTEX, composeVertexShader );
+    config.addShaderSource( Ra::Engine::Data::ShaderType::ShaderType_FRAGMENT,
+                            composeFragmentShader );
+    auto added = m_shaderMngr->addShaderProgram( config );
+    if ( added ) { m_shader = added.value(); }
+}
+
+void SumNode::update() {}
+
+void SumNode::execute() {
+    Ra::Engine::Data::RenderParameters inPassParams;
+
+    // Texture 1
+    auto inputColor1           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    NodeTypeTexture* texColor1 = &inputColor1->getData();
+
+    // Texture 2
+    auto inputColor2           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    NodeTypeTexture* texColor2 = &inputColor2->getData();
+
+    m_framebuffer->bind();
+    m_framebuffer->attachTexture( gl::GL_COLOR_ATTACHMENT0, m_colorTexture->texture() );
+
+    const gl::GLenum buffers[] = { gl::GL_COLOR_ATTACHMENT0 };
+    gl::glDrawBuffers( 1, buffers );
+    gl::glDisable( gl::GL_DEPTH_TEST );
+    gl::glDepthMask( gl::GL_FALSE );
+    gl::glColorMask( gl::GL_TRUE, gl::GL_TRUE, gl::GL_TRUE, gl::GL_TRUE );
+
+    float clearBlack[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
+    gl::glClearBufferfv( gl::GL_COLOR, 0, clearBlack );
+
+    gl::glDisable( gl::GL_BLEND );
+
+    m_shader->bind();
+    m_shader->setUniform( "tex1_sampler", texColor1, 0 );
+    m_shader->setUniform( "tex2_sampler", texColor2, 1 );
+
+    m_quadMesh->render( m_shader );
+
+    m_framebuffer->detach( gl::GL_COLOR_ATTACHMENT0 );
+    m_framebuffer->unbind();
+}
+
+void SumNode::destroy() {
+    delete m_framebuffer;
+    delete m_colorTexture;
+}
+
+void SumNode::resize( uint32_t width, uint32_t height ) {
+    m_colorTexture->resize( width, height );
+}
+
+void SumNode::buildRenderTechnique( const Ra::Engine::Rendering::RenderObject* ro,
+                           Ra::Engine::Rendering::RenderTechnique& rt ) const {}
+
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..4a1ef66babe14914bbccb79173d01446885f1d94
--- /dev/null
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.hpp
@@ -0,0 +1,34 @@
+#pragma once
+#include <RadiumNBR/NodeGraph/Node.hpp>
+
+#include <globjects/Framebuffer.h>
+
+#include <Core/Geometry/MeshPrimitives.hpp>
+#include <Engine/Data/Mesh.hpp>
+#include <Engine/Data/RenderParameters.hpp>
+
+class NodeBasedRenderer_LIBRARY_API SumNode : public Node
+{
+  public:
+    explicit SumNode( const std::string& name );
+
+    void init() override;
+    void update() override;
+    void execute() override;
+    void destroy() override;
+    void resize( uint32_t width, uint32_t height ) override;
+
+    void buildRenderTechnique( const Ra::Engine::Rendering::RenderObject* ro,
+                               Ra::Engine::Rendering::RenderTechnique& rt ) const override;
+
+    static const std::string getTypename() { return "Sum"; }
+
+  private:
+    Ra::Engine::Data::Texture* m_colorTexture{ nullptr };
+
+    std::unique_ptr<Ra::Engine::Data::Displayable> m_quadMesh{ nullptr };
+
+    const Ra::Engine::Data::ShaderProgram* m_shader{ nullptr };
+
+    globjects::Framebuffer* m_framebuffer{ nullptr };
+};
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Demo/DifferenceNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Demo/DifferenceNode.hpp
deleted file mode 100644
index 3ba478661032ae4a8e9fa9af54cc60c890e6a5e7..0000000000000000000000000000000000000000
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Demo/DifferenceNode.hpp
+++ /dev/null
@@ -1,138 +0,0 @@
-#pragma once
-#include <RadiumNBR/NodeGraph/Node.hpp>
-
-#include <globjects/Framebuffer.h>
-
-#include <Core/Geometry/MeshPrimitives.hpp>
-#include <Engine/Data/Mesh.hpp>
-#include <Engine/Data/RenderParameters.hpp>
-
-class NodeBasedRenderer_LIBRARY_API DifferenceNode : public Node
-{
-  public:
-    explicit DifferenceNode( const std::string& name ) : Node( name ) {
-        auto portInColor1 = new PortIn<NodeTypeTexture>( "inColorTexture1", this );
-        addInput( portInColor1 );
-        portInColor1->mustBeLinked();
-        auto portInColor2 = new PortIn<NodeTypeTexture>( "inColorTexture2", this );
-        addInput( portInColor2 );
-        portInColor2->mustBeLinked();
-
-        Ra::Engine::Data::TextureParameters colorTexParams = { "Color Texture",
-                                                               gl::GL_TEXTURE_2D,
-                                                               1,
-                                                               1,
-                                                               1,
-                                                               gl::GL_RGBA,
-                                                               gl::GL_RGBA32F,
-                                                               gl::GL_FLOAT,
-                                                               gl::GL_CLAMP_TO_EDGE,
-                                                               gl::GL_CLAMP_TO_EDGE,
-                                                               gl::GL_CLAMP_TO_EDGE,
-                                                               gl::GL_LINEAR,
-                                                               gl::GL_LINEAR,
-                                                               nullptr };
-        m_colorTexture = new Ra::Engine::Data::Texture( colorTexParams );
-
-        auto portOutColorTex = new PortOut<NodeTypeTexture>( "outColorTexture", this );
-        addOutput( portOutColorTex, m_colorTexture );
-    }
-
-    void init() override {
-        m_framebuffer = new globjects::Framebuffer();
-
-        Ra::Core::Geometry::TriangleMesh mesh =
-            Ra::Core::Geometry::makeZNormalQuad( Ra::Core::Vector2( -1.f, 1.f ) );
-        auto qm = std::make_unique<Ra::Engine::Data::Mesh>( "caller" );
-        qm->loadGeometry( std::move( mesh ) );
-        m_quadMesh = std::move( qm );
-        m_quadMesh->updateGL();
-
-        const std::string composeVertexShader{ "layout (location = 0) in vec3 in_position;\n"
-                                               "out vec2 varTexcoord;\n"
-                                               "void main()\n"
-                                               "{\n"
-                                               "  gl_Position = vec4(in_position, 1.0);\n"
-                                               "  varTexcoord = (in_position.xy + 1.0) * 0.5;\n"
-                                               "}\n" };
-        const std::string composeFragmentShader{
-            "layout (location = 0) out vec4 out_diff;\n"
-            "uniform sampler2D tex1_sampler;\n"
-            "uniform sampler2D tex2_sampler;\n"
-            "in vec2 varTexcoord;\n"
-            "void main() {\n"
-            "   out_diff = texture(tex1_sampler, varTexcoord) - texture(tex2_sampler, varTexcoord);\n"
-            "}" };
-
-        Ra::Engine::Data::ShaderConfiguration config{ "ComposeDifference" };
-        config.addShaderSource( Ra::Engine::Data::ShaderType::ShaderType_VERTEX,
-                                composeVertexShader );
-        config.addShaderSource( Ra::Engine::Data::ShaderType::ShaderType_FRAGMENT,
-                                composeFragmentShader );
-        auto added = m_shaderMngr->addShaderProgram( config );
-        if ( added ) { m_shader = added.value(); }
-    }
-
-    void update() override {}
-
-    void execute() override {
-        Ra::Engine::Data::RenderParameters inPassParams;
-
-        // Texture 1
-        auto inputColor1 =
-            dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
-        NodeTypeTexture* texColor1 = &inputColor1->getData();
-
-        // Texture 2
-        auto inputColor2           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
-        NodeTypeTexture* texColor2 = &inputColor2->getData();
-
-        m_framebuffer->bind();
-        m_framebuffer->attachTexture( gl::GL_COLOR_ATTACHMENT0, m_colorTexture->texture() );
-
-        const gl::GLenum buffers[] = { gl::GL_COLOR_ATTACHMENT0 };
-        gl::glDrawBuffers( 1, buffers );
-        gl::glDisable( gl::GL_DEPTH_TEST );
-        gl::glDepthMask( gl::GL_FALSE );
-        gl::glColorMask( gl::GL_TRUE, gl::GL_TRUE, gl::GL_TRUE, gl::GL_TRUE );
-
-        float clearBlack[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
-        gl::glClearBufferfv( gl::GL_COLOR, 0, clearBlack );
-
-        gl::glDisable( gl::GL_BLEND );
-
-        m_shader->bind();
-        m_shader->setUniform( "tex1_sampler", texColor1, 0 );
-        m_shader->setUniform( "tex2_sampler", texColor2, 1 );
-
-        m_quadMesh->render( m_shader );
-
-        m_framebuffer->detach( gl::GL_COLOR_ATTACHMENT0 );
-        m_framebuffer->unbind();
-    }
-
-    void destroy() override {
-        delete m_framebuffer;
-        delete m_colorTexture;
-    }
-
-    void resize( uint32_t width, uint32_t height ) override {
-        m_colorTexture->resize( width, height );
-    }
-
-    void buildRenderTechnique( const Ra::Engine::Rendering::RenderObject* ro,
-                               Ra::Engine::Rendering::RenderTechnique& rt ) const override {
-        
-    }
-
-    static const std::string getTypename() { return "Difference"; }
-
-  private:
-    Ra::Engine::Data::Texture* m_colorTexture{ nullptr };
-
-    std::unique_ptr<Ra::Engine::Data::Displayable> m_quadMesh{ nullptr };
-
-    const Ra::Engine::Data::ShaderProgram* m_shader{ nullptr };
-
-    globjects::Framebuffer* m_framebuffer{ nullptr };
-};
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/FilterNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/FilterNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/FilterROByNameNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByNameNode.hpp
similarity index 90%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/FilterROByNameNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByNameNode.hpp
index 778e6b13a382fa5abf705f7942e8fc68e44c061b..4084edf3abca3ec14841daf19fcd4d7886cb1674 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/FilterROByNameNode.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByNameNode.hpp
@@ -1,5 +1,5 @@
 #pragma once
-#include <RadiumNBR/NodeGraph/PremadeNodes/FilterNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp>
 #include <regex>
 
 class FilterROByNameNode : public FilterNode<NodeTypeRenderObject> {
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/FilterROByTypeNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByTypeNode.hpp
similarity index 91%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/FilterROByTypeNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByTypeNode.hpp
index fa51dd9008344b828e6e3dc0f986501982b438ad..4aa92d7e09f26694dedf9ca1c714702f0529f2dd 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/FilterROByTypeNode.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByTypeNode.hpp
@@ -1,5 +1,5 @@
 #pragma once
-#include <RadiumNBR/NodeGraph/PremadeNodes/FilterNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp>
 #include <Engine/Data/Material.hpp>
 
 class FilterROByTypeNode : public FilterNode<NodeTypeRenderObject>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/PremadeNodesIncludes.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/PremadeNodesIncludes.hpp
index 9e1926219b56ea696ad448d5bd2ad3f9a4a2e220..dd160df9fa10f28906eba471e58ef78d68e9df2d 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/PremadeNodesIncludes.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/PremadeNodesIncludes.hpp
@@ -1,24 +1,30 @@
 #pragma once
-#include <RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DataNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/FilterNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/FilterROByNameNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/FilterROByTypeNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/SinkNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/SourceNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/ColorTextureNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DepthTextureNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/TextureNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/UINode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/Demo/SimpleNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/Demo/DifferenceNode.hpp>
\ No newline at end of file
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.hpp>
+
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/DataNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/SourceNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/ColorTextureNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/DepthTextureNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.hpp>
+
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sinks/SinkNode.hpp>
+
+#include <RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByNameNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByTypeNode.hpp>
+
+#include <RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.hpp>
+
+#include <RadiumNBR/NodeGraph/PremadeNodes/Demo/SimpleNode.hpp>
\ No newline at end of file
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.cpp
similarity index 99%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.cpp
index 4b5b3d3a1eec321170d8927930d818723c4b8c73..99b24e5b7d8e6a42606fe34a6e490228e7a96052 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.hpp>
 
 #include <Core/Geometry/MeshPrimitives.hpp>
 #include <Engine/Data/Mesh.hpp>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.cpp
similarity index 98%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.cpp
index 292d17a8ca54cc5bf6e301fe249a36cdf7630c4e..dbb8624120b41f8a5fd13f94ad7a44f1244285d3 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.hpp>
 
 #include <RadiumNBR/EnvMap.hpp>
 
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.cpp
similarity index 98%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.cpp
index f2d308e6f8530a7e1b163283bc733ab07e404f87..5e540d5c904dc401e40fb2ffa662843fb1241eac 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.hpp>
 
 #include <Engine/Data/Material.hpp>
 #include <Engine/Data/ShaderConfigFactory.hpp>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.cpp
similarity index 99%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.cpp
index 9893ab7afb03c3bf2900b88acbc3e6e161d37ac7..ccb4c4994c97f0320e8597b3deb16e72d7d81c74 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.hpp>
 
 #include <Engine/Data/Material.hpp>
 #include <Engine/Data/ShaderConfigFactory.hpp>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.cpp
similarity index 98%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.cpp
index bfe98daf6306fbd9f727243dd852164d81c509fd..7aef7961aba58f2b783180e43d0c54c88c15b8f7 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.hpp>
 
 #include <Engine/Data/Material.hpp>
 #include <Engine/Data/ShaderConfigFactory.hpp>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.cpp
similarity index 99%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.cpp
index 7542d3456e0af4bac394eb8eecedbb1a42ae55bd..5c869f44fbca0f67d0620fb44dc600614bb07f42 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.hpp>
 
 #include <Core/Geometry/MeshPrimitives.hpp>
 
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/UINode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.cpp
similarity index 98%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/UINode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.cpp
index 01c26f161d68dec4127079f81891a0a201a96534..9842d8ecb786e29c67e06680025fed2730b8eb81 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/UINode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/UINode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.hpp>
 
 #include <Engine/Data/Material.hpp>
 #include <Engine/Data/Mesh.hpp>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/UINode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/UINode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.cpp
similarity index 99%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.cpp
index 9814ab759b251ea9d9ab8ec8e3a0d53fef78fde1..432e44976bdb59251e00242353798b26a907c0ab 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.hpp>
 
 #include <Core/Geometry/MeshPrimitives.hpp>
 
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.cpp
similarity index 99%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.cpp
index 491ff9bd55fce2276d846db8ab507fc8c187ecb2..636264daed85eca93816067cf4b5df49dd4c269b 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.hpp>
 
 VolumeVizualisationNode::VolumeVizualisationNode( const std::string& name ) : Node( name ) {
     auto portInColor = new PortIn<NodeTypeTexture>( "inColorTexture", this );
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.hpp
similarity index 98%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.hpp
index 2f94508037f540726ad324c50306f63deaaffb1c..2a7ae5b061ad1f909caa9c9ac7db1acf4bde7e49 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.hpp
@@ -55,7 +55,7 @@ class VolumeWithGradientParameterProvider : public Ra::Engine::Data::ShaderParam
     Ra::Core::Geometry::VolumeGrid& m_volumeGrid;
 };
 
-class VolumeVizualisationNode : public Node
+class NodeBasedRenderer_LIBRARY_API VolumeVizualisationNode : public Node
 {
   public:
     explicit VolumeVizualisationNode( const std::string& name );
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.cpp
similarity index 99%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.cpp
index 8bf8376c99be98e122e51b7df70349a8fd1a9777..ce345ea77101823c89477856b99252499ec12193 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.hpp>
 
 #include <Engine/Data/Material.hpp>
 #include <Engine/Data/Mesh.hpp>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.cpp
similarity index 98%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.cpp
index 6d85d9ff85027e979e77c80be9a0d9db9af00cf7..a14515ff8afc370919173cc572163d6934139321 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.hpp>
 
 #include <Engine/Data/Material.hpp>
 #include <Engine/Data/ShaderConfigFactory.hpp>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.cpp
similarity index 95%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.cpp
index b40dfc99c7065723b340b434000a3a58201a5905..ead6bf583e4be461f676f78cc256399e38b88ee1 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp>
 
 #define MAX_DISPLAY_INPUTS 16
 
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/SinkNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/SinkNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/SinkNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/SinkNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ColorTextureNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/ColorTextureNode.hpp
similarity index 89%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ColorTextureNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/ColorTextureNode.hpp
index 95b38571f1fdd9d8c0acaffa57af88f503e85a21..8974fcbf72a2c6a320f46edf8239258935681c63 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ColorTextureNode.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/ColorTextureNode.hpp
@@ -1,5 +1,5 @@
 #pragma once
-#include <RadiumNBR/NodeGraph/PremadeNodes/TextureNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.hpp>
 
 class NodeBasedRenderer_LIBRARY_API ColorTextureNode : public TextureNode
 {
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DataNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/DataNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DataNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/DataNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DepthTextureNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/DepthTextureNode.hpp
similarity index 90%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DepthTextureNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/DepthTextureNode.hpp
index 7eff5fec9dd4318c31e6aa18856045e2d8c5fca7..7cb55f7d5c8325efe5b7ed68aca45251b0060a7e 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DepthTextureNode.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/DepthTextureNode.hpp
@@ -1,5 +1,5 @@
 #pragma once
-#include <RadiumNBR/NodeGraph/PremadeNodes/TextureNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.hpp>
 
 class NodeBasedRenderer_LIBRARY_API DepthTextureNode : public TextureNode
 {
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/SourceNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/SourceNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/SourceNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/SourceNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TextureNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.cpp
similarity index 94%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TextureNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.cpp
index bf8ea43719d25e089666e5986fb5815f8d0fefb8..ac752da486a415cd6cface89c5efa8560f8a0551 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TextureNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/TextureNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.hpp>
 
 TextureNode::TextureNode( const std::string& name,
                           const Ra::Engine::Data::TextureParameters& texParams ) :
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TextureNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TextureNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/RenderGraph.hpp b/src/libRender/RadiumNBR/NodeGraph/RenderGraph.hpp
index dad855da78469d649d4098872a11b17a253c1072..d397bfc3c94fb77d880f76dafc3d419d56cd13b3 100644
--- a/src/libRender/RadiumNBR/NodeGraph/RenderGraph.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/RenderGraph.hpp
@@ -1,8 +1,8 @@
 #pragma once
 #include <RadiumNBR/NodeBasedRendererMacro.hpp>
 #include <RadiumNBR/NodeGraph/Node.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DataNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/DataNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp>
 
 // TODO : Find a new name, it is not a RENDER graph only anymore
 class NodeBasedRenderer_LIBRARY_API RenderGraph : public Node {
diff --git a/src/libRender/RadiumNBR/Renderer/NodeGraphController.cpp b/src/libRender/RadiumNBR/Renderer/NodeGraphController.cpp
index bed6b0deb7c67e6e29b6ce4c632e7b21d1802f2b..342006f8c5ac6993334bdec7a980a45d0241dd40 100644
--- a/src/libRender/RadiumNBR/Renderer/NodeGraphController.cpp
+++ b/src/libRender/RadiumNBR/Renderer/NodeGraphController.cpp
@@ -3,22 +3,22 @@
 #include <Engine/RadiumEngine.hpp>
 #include <RadiumNBR/Renderer/NodeGraphController.hpp>
 
-#include <RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DataNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/FilterNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/SinkNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/SourceNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/TextureNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/UINode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/DataNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sinks/SinkNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/SourceNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.hpp>
 
 #include <Engine/Data/ViewingParameters.hpp>