diff --git a/Algorithm.md b/doc/Algorithm.md
similarity index 99%
rename from Algorithm.md
rename to doc/Algorithm.md
index 3e507da..09cd83d 100644
--- a/Algorithm.md
+++ b/doc/Algorithm.md
@@ -132,7 +132,7 @@ A vertex is matched if it is incident to an edge in the matching, otherwise it i
An alternating path is a simple path that alternates between matched and unmatched edges.
-![Figure 1](doc/figures/graph1.png)
+![Figure 1](figures/graph1.png)
*Figure 1*
Figure 1 depicts a graph with 6 vertices and 9 edges.
@@ -208,7 +208,7 @@ Furthermore, after shrinking a blossom, that blossom can become a sub-blossom
in a bigger blossom.
Figure 2 depicts a graph with several nested blossoms.
-![Figure 2](doc/figures/graph2.png)
+![Figure 2](figures/graph2.png)
*Figure 2: Nested blossoms*
To describe the algorithm unambiguously, we need precise definitions:
@@ -292,7 +292,7 @@ In this case a new blossom must be created by shrinking the cycle.
If the two S-blossoms are in different alternating trees, the edge that links the blossoms
is part of an augmenting path between the roots of the two trees.
-![Figure 3](doc/figures/graph3.png)
+![Figure 3](figures/graph3.png)
*Figure 3: Growing alternating trees*
The graph in figure 3 contains two unmatched vertices: 0 and 7.
@@ -420,7 +420,7 @@ The blossom also has a different base vertex.
(In specific cases where the augmenting path merely "grazes" a blossom,
the orientation and base vertex remain unchanged.)
-![Figure 4](doc/figures/graph4.png)
+![Figure 4](figures/graph4.png)
*Figure 4: Augmenting path through a blossom*
Figure 4 shows an augmenting path that runs through a blossom.
@@ -632,7 +632,7 @@ We then assign alternating labels T and S to the sub-blossoms along that path
and link them into the alternating tree.
All vertices of sub-blossoms that got label S are inserted into _Q_.
-![Figure 5](doc/figures/graph5.png)
+![Figure 5](figures/graph5.png)
*Figure 5: Expanding a T-blossom*
### Keeping track of least-slack edges