implements getNormal
diff --git a/src/geometries/Plane.java b/src/geometries/Plane.java
index b422d68..ab93e83 100644
--- a/src/geometries/Plane.java
+++ b/src/geometries/Plane.java
@@ -34,8 +34,11 @@
 	 * @param p3 for the third point

 	 */

 	public Plane(Point3D p1, Point3D p2, Point3D p3) {

-		this.q0 = p1;

-		this.normal = null;

+		this.q0=p1;

+        Vector v1=p2.subtract(p1);

+        Vector v2=p3.subtract(p1);

+        Vector n =v1.crossProduct(v2);

+        this.normal=n.normalize();

 

 	}

 

@@ -63,7 +66,7 @@
 	@Override

 	public Vector getNormal(Point3D point3d) {

 

-		return null;

+		return normal;

 	}

 

 }

diff --git a/src/geometries/Sphere.java b/src/geometries/Sphere.java
index 41daa88..13d03ed 100644
--- a/src/geometries/Sphere.java
+++ b/src/geometries/Sphere.java
@@ -48,8 +48,8 @@
 

 	@Override

 	public Vector getNormal(Point3D point3d) {

-

-		return null;

+		Vector vector = point3d.subtract(center);

+		return vector.normalized();

 	}

 

 }

diff --git a/src/geometries/Triangle.java b/src/geometries/Triangle.java
index 5e47979..2762128 100644
--- a/src/geometries/Triangle.java
+++ b/src/geometries/Triangle.java
@@ -1,7 +1,7 @@
 package geometries;

 

 import primitives.Point3D;

-import primitives.Vector;

+

 

 /**

  * Triangle class represent a polygon with three vertices.

@@ -26,10 +26,6 @@
 		return vertices + ", " + plane ;

 	}

 	

-	@Override

-	public Vector getNormal(Point3D point3d) {

-		return null;

-	}

-

+	

 	

 }

diff --git a/src/geometries/Tube.java b/src/geometries/Tube.java
index 461a60a..815c126 100644
--- a/src/geometries/Tube.java
+++ b/src/geometries/Tube.java
@@ -50,8 +50,8 @@
 	@Override

 	public Vector getNormal(Point3D point3d) {

 		Vector t=point3d.subtract(axisRay.getP0());

-		double t1=t.dotProduct(axisRay.getDir());

-		Point3D O=axisRay.getP0().add(axisRay.getDir().scale(t1));

+		double projection=t.dotProduct(axisRay.getDir());

+		Point3D O=axisRay.getP0().add(axisRay.getDir().scale(projection));

 		Vector vector = point3d.subtract(O);

 		return vector.normalized();

 	}