diff --git a/Skeleton.cpp b/Skeleton.cpp
index 22b9db3ed4351cef9cb1fcf6f0a9e1ca5fab5354..44c178d6e4fefeee33133fc90131626b7f3fc82a 100644
--- a/Skeleton.cpp
+++ b/Skeleton.cpp
@@ -3,6 +3,45 @@
 //=============================================================================================
 #include "framework.h"
 
+
+vec3 objPoints[20] = {
+        vec3(0, 0.618, 1.618),
+        vec3(0, -0.618, 1.618),
+        vec3(0, -0.618, -1.618),
+        vec3(0, 0.618, -1.618),
+        vec3(1.618, 0, 0.618),
+        vec3(-1.618, 0, 0.618),
+        vec3(-1.618, 0, -0.618),
+        vec3(1.618, 0, -0.618),
+        vec3(0.618, 1.618, 0),
+        vec3(-0.618, 1.618, 0),
+        vec3(-0.618, -1.618, 0),
+        vec3(0.618, -1.618, 0),
+        vec3(1, 1, 1),
+        vec3(-1, 1, 1),
+        vec3(-1, -1, 1),
+        vec3(1, -1, 1),
+        vec3(1, -1, -1),
+        vec3(1, 1, -1),
+        vec3(-1, 1, -1),
+        vec3(-1, -1, -1)
+};
+
+int objIndex[12][5]{
+        {0, 1, 15, 4, 12},
+        {0, 12, 8, 9, 13},
+        {0, 13, 5, 14, 1},
+        {1, 14, 10, 11, 15},
+        {2, 3, 17, 7, 16},
+        {2, 16, 11, 10, 19},
+        {2, 19, 6, 18, 3},
+        {18, 9, 8, 17, 3},
+        {15, 11, 16, 7, 4},
+        {4, 7, 17, 8, 12},
+        {13, 9, 18, 6, 5},
+        {5, 6, 19, 10, 14}
+};
+
 struct Material {
 	vec3 ka, kd, ks;
 	float  shininess;
@@ -58,16 +97,20 @@ struct Sphere : public Intersectable {
 	}
 };
 
-struct Triangle : public Intersectable {
+struct Pentagon : public Intersectable {
     vec3 r1;
     vec3 r2;
     vec3 r3;
+    vec3 r4;
+    vec3 r5;
     Material* material;
     
-    Triangle(const vec3& _r1, const vec3& _r2, const vec3& _r3, Material* _material) {
+    Pentagon(const vec3& _r1, const vec3& _r2, const vec3& _r3, const vec3& _r4, const vec3& _r5, Material* _material) {
         r1 = _r1;
         r2 = _r2;
         r3 = _r3;
+        r4 = _r4;
+        r5 = _r5;
         material = _material;
     }
     
@@ -85,7 +128,9 @@ struct Triangle : public Intersectable {
         if (
                 dot(cross(r2-r1, p-r1), n) > 0 &&
                 dot(cross(r3-r2, p-r2), n) > 0 &&
-                dot(cross(r1-r3, p-r3), n) > 0
+                dot(cross(r4-r3, p-r3), n) > 0 &&
+                dot(cross(r5-r4, p-r4), n) > 0 &&
+                dot(cross(r1-r5, p-r5), n) > 0
                 ){
             hit.t = t;
             hit.normal = n;
@@ -140,7 +185,7 @@ class Scene {
 	vec3 La;
 public:
 	void build() {
-		vec3 eye = vec3(0, 0, 2), vup = vec3(0, 1, 0), lookat = vec3(0, 0, 0);
+		vec3 eye = vec3(10, 0, 20), vup = vec3(0, 1, 0), lookat = vec3(0, 0, 0);
 		float fov = 45 * M_PI / 180;
 		camera.set(eye, lookat, vup, fov);
 
@@ -152,7 +197,18 @@ public:
 		Material * material = new Material(kd, ks, 50);
 		
         //objects.push_back(new Sphere(vec3(0, 0, 0), .25f, material));
-        objects.push_back(new Triangle(vec3(0.1, 0, 0), vec3(0,0,.1), vec3(0, .1, .1), material));
+        //objects.push_back(new Pentagon(vec3(0.03, -.01, 0), vec3(0, .37, 0), vec3(-.47, .49, 0), vec3(-.73, .08, 0), vec3(-.414, -0.288, 0), material));
+        
+        for (int i = 0; i < 12; i++) {
+            auto indexRow = objIndex[i];
+            auto p1 = objPoints[indexRow[0]];
+            auto p2 = objPoints[indexRow[1]];
+            auto p3 = objPoints[indexRow[2]];
+            auto p4 = objPoints[indexRow[3]];
+            auto p5 = objPoints[indexRow[4]];
+            
+            objects.push_back(new Pentagon(p1, p2, p3, p4, p5, material));
+        }
 	}
 
 	void render(std::vector<vec4>& image) {