     vec3 lightDir = normalize(light.position - fragPosition);
     vec3 norm = normalize(normal);
 
-/*
+    //
+    // TODO: cleaner cutoff lighting if surface is facing away from the light direction
+    //
+    if(dot(lightDir, norm) < 0.0f) {
+        return vec3(0.0f);
+    }
+
     vec3 texel = texture(material.diffuseMap, f_texcoord).xyz;
     if (useDefaultCubeMap) {
-        texel = cubemap_reflect().xyz;
-    }
-*/
+        //texel = cubemap_reflect().xyz;
+        texel = vec3(1.0, 0.0, 1.0);
+    }
 
     // ambient
-    vec3 ambient = light.ambient * material.ambient * texture(material.diffuseMap, f_texcoord).xyz;
-    //vec3 ambient = light.ambient * material.ambient * texel;
-
+    vec3 ambient = light.ambient * material.ambient * texel;
 
     // diffuse
     float diff = max(dot(norm, lightDir), 0.0f);
-
-    vec3 diffuse = light.diffuse * (diff * material.diffuse * texture(material.diffuseMap, f_texcoord).xyz);
-    //vec3 diffuse = light.diffuse * (diff * material.diffuse * texel);
-
+    vec3 diffuse = light.diffuse * (diff * material.diffuse * texel);
 
     // specular
     bool useBlinn = false;


    //float bias = 0.05;
    float bias = 0.00125;
    float shadow = currentDepth - bias > closestDepth ? 1.0 : 0.0;

    return shadow;

    vec3 lightDir = normalize(light.position - fragPosition);
    vec3 norm = normalize(normal);

    //
    // TODO: cleaner cutoff lighting if surface is facing away from the light direction
    //
    if(dot(lightDir, norm) < 0.0f) {
        return vec3(0.0f);
    }

    //
    // TODO: have on function that is responsible for getting the fragment color that can then be
