diff --git a/lighting_dynamic_sky.py b/lighting_dynamic_sky.py
index f5358a45cdd5b9a666426d300f619a3cb5d77949..98d61fd6f1f4209b17d48cf5e3035e4d797fc2e7 100644
--- a/lighting_dynamic_sky.py
+++ b/lighting_dynamic_sky.py
@@ -22,7 +22,7 @@
 bl_info = {
     "name": "Dynamic Sky",
     "author": "Pratik Solanki",
-    "version": (1, 0, 4),
+    "version": (1, 0, 6),
     "blender": (2, 78, 0),
     "location": "View3D > Tools",
     "description": "Creates Dynamic Sky for Cycles",
@@ -71,10 +71,26 @@ def check_world_name(name_id="Dynamic"):
     return name_id
 
 
+def check_cycles():
+    return ('cycles' in bpy.context.user_preferences.addons.keys())
+
+
 class dsky(Operator):
     bl_idname = "sky.dyn"
     bl_label = "Make a Procedural sky"
-    bl_description = "Make a Procedural Sky"
+    bl_description = ("Make a Procedural Sky with parameters in the 3D View\n"
+                      "Note: Available just for Cycles renderer\n"
+                      "Only the last created Dynamic World can be accessed from this panel")
+
+    @classmethod
+    def poll(cls, context):
+        return check_cycles()
+
+    def get_node_types(self, node_tree, node_type):
+        for node in node_tree.nodes:
+            if node.type == node_type:
+                return node
+        return None
 
     def execute(self, context):
         try:
@@ -88,48 +104,67 @@ class dsky(Operator):
             world.use_nodes = True
 
             nt = world.node_tree
-            bg = world.node_tree.nodes['Background']
-
+            # Note: (see T52714) to avoid string localization problems, assign the name for
+            # nodes that will be exposed in the 3D view (pattern UI name with underscore)
+            bg = self.get_node_types(nt, "BACKGROUND")
+            bg.name = "Scene_Brightness"
             bg.inputs[0].default_value[:3] = (0.5, .1, 0.6)
             bg.inputs[1].default_value = 1
+            bg.location = (6708.3, 360)
+
             ntl = nt.links.new
             tcor = nt.nodes.new(type="ShaderNodeTexCoord")
-            map = nt.nodes.new(type="ShaderNodeMapping")
-            map.vector_type = 'NORMAL'
+            tcor.location = (243.729, 1005)
+
+            map1 = nt.nodes.new(type="ShaderNodeMapping")
+            map1.vector_type = 'NORMAL'
+            map1.location = (786.54, 730)
 
             nor = nt.nodes.new(type="ShaderNodeNormal")
+            nor.name = "Sky_normal"
+            nor.location = (1220.16, 685)
 
             cr1 = nt.nodes.new(type="ShaderNodeValToRGB")
             cr1.color_ramp.elements[0].position = 0.969
             cr1.color_ramp.interpolation = 'EASE'
+            cr1.location = (1671.33, 415)
             cr2 = nt.nodes.new(type="ShaderNodeValToRGB")
             cr2.color_ramp.elements[0].position = 0.991
             cr2.color_ramp.elements[1].position = 1
             cr2.color_ramp.interpolation = 'EASE'
+            cr2.location = (2196.6, 415)
             cr3 = nt.nodes.new(type="ShaderNodeValToRGB")
             cr3.color_ramp.elements[0].position = 0.779
             cr3.color_ramp.elements[1].position = 1
             cr3.color_ramp.interpolation = 'EASE'
+            cr3.location = (2196.6, 415)
 
             mat1 = nt.nodes.new(type="ShaderNodeMath")
             mat1.operation = 'MULTIPLY'
             mat1.inputs[1].default_value = 0.2
+            mat1.location = (2196.6, 685)
             mat2 = nt.nodes.new(type="ShaderNodeMath")
             mat2.operation = 'MULTIPLY'
             mat2.inputs[1].default_value = 2
+            mat2.location = (3294, 685)
             mat3 = nt.nodes.new(type="ShaderNodeMath")
             mat3.operation = 'MULTIPLY'
             mat3.inputs[1].default_value = 40.9
+            mat3.location = (2745.24, 415)
             mat4 = nt.nodes.new(type="ShaderNodeMath")
             mat4.operation = 'SUBTRACT'
             mat4.inputs[1].default_value = 1
+            mat4.location = (3294, 415)
             ntl(mat2.inputs[0], mat1.outputs[0])
             ntl(mat4.inputs[0], mat3.outputs[0])
             ntl(mat1.inputs[0], cr3.outputs[0])
             ntl(mat3.inputs[0], cr2.outputs[0])
 
             soft = nt.nodes.new(type="ShaderNodeMixRGB")
+            soft.name = "Soft_hard"
+            soft.location = (3819.3, 550)
             soft_1 = nt.nodes.new(type="ShaderNodeMixRGB")
+            soft_1.location = (3819.3, 185)
             soft.inputs[0].default_value = 1
             soft_1.inputs[0].default_value = 0.466
             ntl(soft.inputs[1], mat2.outputs[0])
@@ -140,12 +175,16 @@ class dsky(Operator):
             mix1 = nt.nodes.new(type="ShaderNodeMixRGB")
             mix1.blend_type = 'MULTIPLY'
             mix1.inputs[0].default_value = 1
+            mix1.location = (4344.3, 630)
             mix1_1 = nt.nodes.new(type="ShaderNodeMixRGB")
             mix1_1.blend_type = 'MULTIPLY'
             mix1_1.inputs[0].default_value = 1
+            mix1_1.location = (4344.3, 90)
 
             mix2 = nt.nodes.new(type="ShaderNodeMixRGB")
+            mix2.location = (4782, 610)
             mix2_1 = nt.nodes.new(type="ShaderNodeMixRGB")
+            mix2_1.location = (5131.8, 270)
             mix2.inputs[1].default_value = (0, 0, 0, 1)
             mix2.inputs[2].default_value = (32, 22, 14, 200)
             mix2_1.inputs[1].default_value = (0, 0, 0, 1)
@@ -158,22 +197,33 @@ class dsky(Operator):
 
             gam = nt.nodes.new(type="ShaderNodeGamma")
             gam.inputs[1].default_value = 2.3
+            gam.location = (5131.8, 610)
+
             gam2 = nt.nodes.new(type="ShaderNodeGamma")
+            gam2.name = "Sun_value"
             gam2.inputs[1].default_value = 1
+            gam2.location = (5524.5, 610)
+
             gam3 = nt.nodes.new(type="ShaderNodeGamma")
+            gam3.name = "Shadow_color_saturation"
             gam3.inputs[1].default_value = 1
+            gam3.location = (5524.5, 880)
 
             sunopa = nt.nodes.new(type="ShaderNodeMixRGB")
             sunopa.blend_type = 'ADD'
             sunopa.inputs[0].default_value = 1
+            sunopa.location = (5940.6, 610)
             sunopa_1 = nt.nodes.new(type="ShaderNodeMixRGB")
             sunopa_1.blend_type = 'ADD'
             sunopa_1.inputs[0].default_value = 1
+            sunopa_1.location = (5524.5, 340)
 
             combine = nt.nodes.new(type="ShaderNodeMixRGB")
+            combine.location = (6313.8, 360)
             ntl(combine.inputs[1], sunopa.outputs[0])
             ntl(combine.inputs[2], sunopa_1.outputs[0])
             lp = nt.nodes.new(type="ShaderNodeLightPath")
+            lp.location = (5940.6, 130)
             ntl(combine.inputs[0], lp.outputs[0])
 
             ntl(gam2.inputs[0], gam.outputs[0])
@@ -184,25 +234,33 @@ class dsky(Operator):
             map2.scale[2] = 6.00
             map2.scale[0] = 1.5
             map2.scale[1] = 1.5
+            map2.location = (2196.6, 1510)
 
             n1 = nt.nodes.new(type="ShaderNodeTexNoise")
             n1.inputs[1].default_value = 3.8
             n1.inputs[2].default_value = 2.4
             n1.inputs[3].default_value = 0.5
+            n1.location = (2745.24, 1780)
 
             n2 = nt.nodes.new(type="ShaderNodeTexNoise")
             n2.inputs[1].default_value = 2.0
             n2.inputs[2].default_value = 10
             n2.inputs[3].default_value = 0.2
+            n2.location = (2745.24, 1510)
 
             ntl(n2.inputs[0], map2.outputs[0])
             ntl(n1.inputs[0], map2.outputs[0])
 
             sc1 = nt.nodes.new(type="ShaderNodeValToRGB")
+            sc1.location = (3294, 1780)
             sc2 = nt.nodes.new(type="ShaderNodeValToRGB")
+            sc2.location = (3294, 1510)
             sc3 = nt.nodes.new(type="ShaderNodeValToRGB")
+            sc3.location = (3819.3, 820)
             sc3_1 = nt.nodes.new(type="ShaderNodeValToRGB")
+            sc3_1.location = (4344.3, 1360)
             sc4 = nt.nodes.new(type="ShaderNodeValToRGB")
+            sc4.location = (3819.3, 1090)
 
             sc1.color_ramp.elements[1].position = 0.649
             sc1.color_ramp.elements[0].position = 0.408
@@ -234,11 +292,24 @@ class dsky(Operator):
             sc3_1.color_ramp.elements[0].position = 0.0
 
             smix1 = nt.nodes.new(type="ShaderNodeMixRGB")
+            smix1.location = (3819.3, 1550)
+            smix1.name = "Cloud_color"
             smix2 = nt.nodes.new(type="ShaderNodeMixRGB")
+            smix2.location = (4344.3, 1630)
+            smix2.name = "Cloud_density"
             smix2_1 = nt.nodes.new(type="ShaderNodeMixRGB")
+            smix2_1.location = (4782, 1360)
+
             smix3 = nt.nodes.new(type="ShaderNodeMixRGB")
+            smix3.location = (4344.3, 1090)
+            smix3.name = "Sky_and_Horizon_colors"
+
             smix4 = nt.nodes.new(type="ShaderNodeMixRGB")
+            smix4.location = (4782, 880)
+
             smix5 = nt.nodes.new(type="ShaderNodeMixRGB")
+            smix5.name = "Cloud_opacity"
+            smix5.location = (5131.8, 880)
 
             smix1.inputs[1].default_value = (1, 1, 1, 1)
             smix1.inputs[2].default_value = (0, 0, 0, 1)
@@ -255,12 +326,18 @@ class dsky(Operator):
             smix5.inputs[0].default_value = 1
 
             srgb = nt.nodes.new(type="ShaderNodeSeparateRGB")
+            srgb.location = (786.54, 1370)
             aniadd = nt.nodes.new(type="ShaderNodeMath")
+            aniadd.location = (1220.16, 1235)
             crgb = nt.nodes.new(type="ShaderNodeCombineRGB")
+            crgb.location = (1671.33, 1510)
             sunrgb = nt.nodes.new(type="ShaderNodeMixRGB")
+            sunrgb.name = "Sun_color"
+
             sunrgb.blend_type = 'MULTIPLY'
             sunrgb.inputs[2].default_value = (32, 30, 30, 200)
             sunrgb.inputs[0].default_value = 1
+            sunrgb.location = (4344.3, 360)
 
             ntl(mix2.inputs[2], sunrgb.outputs[0])
 
@@ -283,6 +360,7 @@ class dsky(Operator):
             ntl(sc2.inputs[0], n2.outputs[0])
 
             skynor = nt.nodes.new(type="ShaderNodeNormal")
+            skynor.location = (3294, 1070)
 
             ntl(sc3.inputs[0], skynor.outputs[1])
             ntl(sc4.inputs[0], skynor.outputs[1])
@@ -299,69 +377,19 @@ class dsky(Operator):
             ntl(cr1.inputs[0], nor.outputs[1])
             ntl(cr2.inputs[0], cr1.outputs[0])
             ntl(cr3.inputs[0], nor.outputs[1])
-            ntl(nor.inputs[0], map.outputs[0])
-            ntl(map.inputs[0], tcor.outputs[0])
+            ntl(nor.inputs[0], map1.outputs[0])
+            ntl(map1.inputs[0], tcor.outputs[0])
             ntl(sunopa_1.inputs[1], smix5.outputs[0])
             ntl(sunopa_1.inputs[2], mix2_1.outputs[0])
 
-            nt.nodes['Background'].location = (6708.3, 360)
-
-            nt.nodes['ColorRamp'].location = (1671.33, 415)
-            nt.nodes['ColorRamp.001'].location = (2196.6, 415)
-            nt.nodes['ColorRamp.002'].location = (1671.33, 685)
-            nt.nodes['ColorRamp.003'].location = (3294, 1780)
-            nt.nodes['ColorRamp.004'].location = (3294, 1510)
-            nt.nodes['ColorRamp.005'].location = (3819.3, 820)
-            nt.nodes['ColorRamp.006'].location = (4344.3, 1360)
-            nt.nodes['ColorRamp.007'].location = (3819.3, 1090)
-
-            nt.nodes['Combine RGB'].location = (1671.33, 1510)
-
-            nt.nodes['Gamma'].location = (5131.8, 610)
-            nt.nodes['Gamma.001'].location = (5524.5, 610)
-            nt.nodes['Gamma.002'].location = (5524.5, 880)
-            nt.nodes['Light Path'].location = (5940.6, 130)
-
-            nt.nodes['Mapping'].location = (786.54, 730)
-            nt.nodes['Mapping.001'].location = (2196.6, 1510)
-
-            nt.nodes['Math'].location = (2196.6, 685)
-            nt.nodes['Math.001'].location = (3294, 685)
-            nt.nodes['Math.002'].location = (2745.24, 415)
-            nt.nodes['Math.003'].location = (3294, 415)
-            nt.nodes['Math.004'].location = (1220.16, 1235)
-
-            nt.nodes['Mix'].location = (3819.3, 550)
-            nt.nodes['Mix.001'].location = (3819.3, 185)
-            nt.nodes['Mix.002'].location = (4344.3, 630)
-            nt.nodes['Mix.003'].location = (4344.3, 90)
-            nt.nodes['Mix.004'].location = (4782, 610)
-            nt.nodes['Mix.005'].location = (5131.8, 270)
-            nt.nodes['Mix.006'].location = (5940.6, 610)
-            nt.nodes['Mix.007'].location = (5524.5, 340)
-            nt.nodes['Mix.008'].location = (6313.8, 360)
-            nt.nodes['Mix.009'].location = (3819.3, 1550)
-            nt.nodes['Mix.010'].location = (4344.3, 1630)
-            nt.nodes['Mix.011'].location = (4782, 1360)
-            nt.nodes['Mix.012'].location = (4344.3, 1090)
-            nt.nodes['Mix.013'].location = (4782, 880)
-            nt.nodes['Mix.014'].location = (5131.8, 880)
-            nt.nodes['Mix.015'].location = (4344.3, 360)
-
-            nt.nodes['Noise Texture'].location = (2745.24, 1780)
-            nt.nodes['Noise Texture.001'].location = (2745.24, 1510)
-
-            nt.nodes['Normal'].location = (1220.16, 685)
-            nt.nodes['Normal.001'].location = (3294, 1070)
-
-            nt.nodes['Separate RGB'].location = (786.54, 1370)
-            nt.nodes['Texture Coordinate'].location = (243.729, 1005)
-            nt.nodes['World Output'].location = (7167.3, 360)
+            world_out = self.get_node_types(nt, "OUTPUT_WORLD")
+            world_out.location = (7167.3, 360)
 
         except Exception as e:
             error_handlers(self, e, "Make a Procedural sky has failed")
 
             return {"CANCELLED"}
+
         return {'FINISHED'}
 
 
@@ -385,18 +413,19 @@ def draw_world_settings(col, context):
     pick_world = bpy.data.worlds[stored_name]
     try:
         m = pick_world.node_tree.nodes[28]
-        m = pick_world.node_tree.nodes['Mix.012'].inputs[1]
-        n = pick_world.node_tree.nodes['Mix.012'].inputs[2]
-        c = pick_world.node_tree.nodes['Mix.009'].inputs[1]
-        o = pick_world.node_tree.nodes['Mix.014'].inputs[0]
-        d = pick_world.node_tree.nodes['Mix.010'].inputs[0]
-        so = pick_world.node_tree.nodes['Gamma.001'].inputs[1]
-        so2 = pick_world.node_tree.nodes['Gamma.002'].inputs[1]
-        no = pick_world.node_tree.nodes['Normal'].outputs[0]
-        sof = pick_world.node_tree.nodes['Mix'].inputs[0]
-        bgp = pick_world.node_tree.nodes['Background'].inputs[1]
-
-        suc = pick_world.node_tree.nodes['Mix.015'].inputs[1]
+
+        m = pick_world.node_tree.nodes['Sky_and_Horizon_colors'].inputs[1]
+        n = pick_world.node_tree.nodes['Sky_and_Horizon_colors'].inputs[2]
+        c = pick_world.node_tree.nodes['Cloud_color'].inputs[1]
+        o = pick_world.node_tree.nodes['Cloud_opacity'].inputs[0]
+        d = pick_world.node_tree.nodes['Cloud_density'].inputs[0]
+        so = pick_world.node_tree.nodes['Sun_value'].inputs[1]
+        so2 = pick_world.node_tree.nodes['Shadow_color_saturation'].inputs[1]
+        no = pick_world.node_tree.nodes['Sky_normal'].outputs[0]
+        sof = pick_world.node_tree.nodes['Soft_hard'].inputs[0]
+        bgp = pick_world.node_tree.nodes['Scene_Brightness'].inputs[1]
+
+        suc = pick_world.node_tree.nodes['Sun_color'].inputs[1]
     except:
         col.label(text="Please Create a new World", icon="INFO")
         col.label(text="seems that there was already", icon="BLANK1")