diff --git a/src/berack96/sim/util/graph/Edge.java b/src/berack96/lib/graph/Edge.java
similarity index 98%
rename from src/berack96/sim/util/graph/Edge.java
rename to src/berack96/lib/graph/Edge.java
index c8f1965..17a3946 100644
--- a/src/berack96/sim/util/graph/Edge.java
+++ b/src/berack96/lib/graph/Edge.java
@@ -1,4 +1,4 @@
-package berack96.sim.util.graph;
+package berack96.lib.graph;
/**
* Class used for retrieving the edges of the graph.
diff --git a/src/berack96/sim/util/graph/Graph.java b/src/berack96/lib/graph/Graph.java
similarity index 96%
rename from src/berack96/sim/util/graph/Graph.java
rename to src/berack96/lib/graph/Graph.java
index 673c026..7b3bc36 100644
--- a/src/berack96/sim/util/graph/Graph.java
+++ b/src/berack96/lib/graph/Graph.java
@@ -1,4 +1,4 @@
-package berack96.sim.util.graph;
+package berack96.lib.graph;
import java.io.File;
import java.io.FileReader;
@@ -12,9 +12,9 @@ import java.util.function.Consumer;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
-import berack96.sim.util.graph.models.GraphSaveStructure;
-import berack96.sim.util.graph.visit.VisitInfo;
-import berack96.sim.util.graph.visit.VisitStrategy;
+import berack96.lib.graph.models.GraphSaveStructure;
+import berack96.lib.graph.visit.VisitStrategy;
+import berack96.lib.graph.visit.impl.VisitInfo;
/**
* An interface for the graphs.
@@ -96,8 +96,9 @@ public interface Graph extends Iterable {
*
* @param vertex the vertex to remove
* @throws NullPointerException if the vertex is null
+ * @throws IllegalArgumentException if the vertex is not contained
*/
- void removeVertex(V vertex) throws IllegalArgumentException;
+ void removeVertex(V vertex) throws NullPointerException, IllegalArgumentException;
/**
* Remove all the vertex contained in the graph.
diff --git a/src/berack96/sim/util/graph/Vertex.java b/src/berack96/lib/graph/Vertex.java
similarity index 98%
rename from src/berack96/sim/util/graph/Vertex.java
rename to src/berack96/lib/graph/Vertex.java
index d369555..79433ac 100644
--- a/src/berack96/sim/util/graph/Vertex.java
+++ b/src/berack96/lib/graph/Vertex.java
@@ -1,12 +1,12 @@
-package berack96.sim.util.graph;
-
-import berack96.sim.util.graph.visit.VisitInfo;
-import berack96.sim.util.graph.visit.VisitStrategy;
+package berack96.lib.graph;
import java.util.Collection;
import java.util.HashSet;
import java.util.function.Consumer;
+import berack96.lib.graph.visit.VisitStrategy;
+import berack96.lib.graph.visit.impl.VisitInfo;
+
/**
* Class used for represent a vertex of the graph.
* The vertex contained is linked with the graph, so if any changes are made to
diff --git a/src/berack96/lib/graph/impl/AdjGraph.java b/src/berack96/lib/graph/impl/AdjGraph.java
new file mode 100644
index 0000000..55caa81
--- /dev/null
+++ b/src/berack96/lib/graph/impl/AdjGraph.java
@@ -0,0 +1,313 @@
+package berack96.lib.graph.impl;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Consumer;
+
+import berack96.lib.graph.Edge;
+import berack96.lib.graph.Graph;
+import berack96.lib.graph.Vertex;
+import berack96.lib.graph.visit.VisitStrategy;
+import berack96.lib.graph.visit.impl.VisitInfo;
+
+public class AdjGraph implements Graph {
+
+ @Override
+ public Iterator iterator() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean isCyclic() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isDAG() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public Vertex getVertex(V vertex) throws NullPointerException, IllegalArgumentException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void addVertex(V vertex) throws NullPointerException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean addVertexIfAbsent(V vertex) throws NullPointerException {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void addAllVertices(Collection vertices) throws NullPointerException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void removeVertex(V vertex) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void removeAllVertex() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean contains(V vertex) throws NullPointerException {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void mark(V vertex, Object mark) throws NullPointerException, IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void unMark(V vertex, Object mark) throws NullPointerException, IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void unMark(V vertex) throws NullPointerException, IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public Collection getMarkedWith(Object mark) throws NullPointerException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Collection