diff --git a/conanfile.py b/conanfile.py
index c2729bfb58ceb2788b4ba2c24e45a677e07890b4..cdc5f630de506ee975d65d06b5bef6858a59fc23 100644
--- a/conanfile.py
+++ b/conanfile.py
@@ -30,6 +30,12 @@ class SciglRenderConan(ConanFile):
         cmake.build()
 
     def package(self):
+        self.copy("*.cs", dst="include", src="include", keep_path=True)
+        self.copy("*.fs", dst="include", src="include", keep_path=True)
+        self.copy("*.gs", dst="include", src="include", keep_path=True)
+        self.copy("*.tcs", dst="include", src="include", keep_path=True)
+        self.copy("*.tes", dst="include", src="include", keep_path=True)
+        self.copy("*.vs", dst="include", src="include", keep_path=True)
         self.copy("*.h", dst="include", src="include", keep_path=True)
         self.copy("*.hpp", dst="include", src="include", keep_path=True)
         self.copy("*.lib", dst="lib", keep_path=False)
diff --git a/include/scigl_render/render/onscreen_render.hpp b/include/scigl_render/render/onscreen_render.hpp
index f88adae6eb539aaece7876284cc5a5286cdfc4dd..34707bca9455bdc2928ff1e123f3cacad81ebe26 100644
--- a/include/scigl_render/render/onscreen_render.hpp
+++ b/include/scigl_render/render/onscreen_render.hpp
@@ -14,12 +14,18 @@ Simple rendering of a scene right on the screen (GLContext window).
 class OnscreenRender
 {
 public:
+  /*! Need to set the shader with the setter */
+  OnscreenRender();
+
   /*!
   Configures the rendering environment and loads the models.
   \param shader how to render the scene
   */
   OnscreenRender(Shader shader);
 
+  /*! Shader program for rendering the scene*/
+  void set_shader_program(Shader shader);
+
   /*!
   Renders the next frame onto the screen.
   */
diff --git a/src/example/scigl_viewer.cpp b/src/example/scigl_viewer.cpp
index 927c10d5a7c3ed71c4916855988f19b1cb22776f..d53092bc030e374dc241b85d3e0381897d331ed0 100644
--- a/src/example/scigl_viewer.cpp
+++ b/src/example/scigl_viewer.cpp
@@ -67,11 +67,15 @@ int main(int argc, char *argv[])
   camera_intrinsics.c_y = 310;
   camera_intrinsics.f_x = 511;
   camera_intrinsics.f_y = 513;
-  camera_intrinsics.dist_coeffs[0] = 4.1925421198910247e-02;
-  camera_intrinsics.dist_coeffs[1] = -9.6463442423611379e-02;
-  camera_intrinsics.dist_coeffs[2] = -2.3391717576772839e-03;
-  camera_intrinsics.dist_coeffs[3] = 5.8792609967242386e-04;
-  camera_intrinsics.dist_coeffs[4] = 4.9171950039135250e-02;
+  float dist_coeffs[] = {
+      4.1925421198910247e-02,
+      -9.6463442423611379e-02,
+      -2.3391717576772839e-03,
+      5.8792609967242386e-04,
+      4.9171950039135250e-02,
+      0, 0, 0};
+  std::copy(std::begin(dist_coeffs), std::end(dist_coeffs),
+            std::begin(camera_intrinsics.dist_coeffs));
   CvCamera camera(camera_intrinsics);
   // Test if Cartesian -> Quaternion works
   CartesianPose camera_pose = {glm::vec3(0, 0, 0), glm::vec3(0, 0, 0)};
@@ -81,7 +85,7 @@ int main(int argc, char *argv[])
   model.pose.position = glm::vec3(0, 0, 0.5);
   model.pose.orientation.x = 0.707;
   model.pose.orientation.w = 0.707;
-  light.position = glm::vec3(0, -0.1, 0);
+  light.position = glm::vec3(0, -0.5, 0);
   light.color = glm::vec3(1, 1, 1);
 
   // main loop
diff --git a/src/render/onscreen_render.cpp b/src/render/onscreen_render.cpp
index 69b5d691180a801e3c62a6c9eea9f72cca56e846..07e5f484f982b0afd74217479da2932f076e5d99 100644
--- a/src/render/onscreen_render.cpp
+++ b/src/render/onscreen_render.cpp
@@ -3,12 +3,13 @@
 
 namespace scigl_render
 {
+OnscreenRender::OnscreenRender() : OnscreenRender(Shader(0)) {}
+
 OnscreenRender::OnscreenRender(Shader shader)
-    : shader(std::move(shader))
 {
   // Configure the global rendering settings
   glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
-  check_gl_error("onscreen render created");
+  set_shader_program(std::move(shader));
 }
 
 void OnscreenRender::next_frame(
@@ -24,7 +25,12 @@ void OnscreenRender::next_frame(
   model.draw(shader);
 
   glfwSwapBuffers(gl_context.get_window());
-  check_gl_error("next frame");
+  check_gl_error("rendered next frame");
+}
+
+void OnscreenRender::set_shader_program(Shader shader)
+{
+  this->shader = std::move(shader);
 }
 
 } // namespace scigl_render
\ No newline at end of file