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*
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: 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: 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: 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: Expanding a T-blossom*
### Keeping track of least-slack edges