diff --git a/src/main/java/cz/vsb/java1/test2/Vector3D.java b/src/main/java/cz/vsb/java1/test2/Vector3D.java
index 5bab1dfa8298458f0d9bee18fbbfbe80368342e1..fd7eda7d3b03bcaaae638af5f4286bc07634af2b 100644
--- a/src/main/java/cz/vsb/java1/test2/Vector3D.java
+++ b/src/main/java/cz/vsb/java1/test2/Vector3D.java
@@ -1,13 +1,15 @@
 package cz.vsb.java1.test2;
 
+import java.util.Objects;
+
 import cz.vsb.java1.test2.helpers.RandomGenarator;
 
 public class Vector3D {
 
 	private String name;
-	private int x;
-	private int y;
-	private int z;
+	private double x;
+	private double y;
+	private double z;
 
 	public static Vector3D generate() {
 		return new Vector3D(RandomGenarator.generateRandomVectorName(), // name
@@ -34,27 +36,27 @@ public class Vector3D {
 		this.name = name;
 	}
 
-	public int getX() {
+	public double getX() {
 		return x;
 	}
 
-	public void setX(int x) {
+	public void setX(double x) {
 		this.x = x;
 	}
 
-	public int getY() {
+	public double getY() {
 		return y;
 	}
 
-	public void setY(int y) {
+	public void setY(double y) {
 		this.y = y;
 	}
 
-	public int getZ() {
+	public double getZ() {
 		return z;
 	}
 
-	public void setZ(int z) {
+	public void setZ(double z) {
 		this.z = z;
 	}
 
@@ -71,15 +73,10 @@ public class Vector3D {
 		return "Vector3D [name=" + name + ", x=" + x + ", y=" + y + ", z=" + z + "]";
 	}
 
+	
 	@Override
 	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((name == null) ? 0 : name.hashCode());
-		result = prime * result + x;
-		result = prime * result + y;
-		result = prime * result + z;
-		return result;
+		return Objects.hash(name, x, y, z);
 	}
 
 	@Override
@@ -91,18 +88,9 @@ public class Vector3D {
 		if (getClass() != obj.getClass())
 			return false;
 		Vector3D other = (Vector3D) obj;
-		if (name == null) {
-			if (other.name != null)
-				return false;
-		} else if (!name.equals(other.name))
-			return false;
-		if (x != other.x)
-			return false;
-		if (y != other.y)
-			return false;
-		if (z != other.z)
-			return false;
-		return true;
+		return Objects.equals(name, other.name) && Double.doubleToLongBits(x) == Double.doubleToLongBits(other.x)
+				&& Double.doubleToLongBits(y) == Double.doubleToLongBits(other.y)
+				&& Double.doubleToLongBits(z) == Double.doubleToLongBits(other.z);
 	}
 
 }