Index: branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/HillClimber.cs
===================================================================
--- branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/HillClimber.cs	(revision 11669)
+++ branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/HillClimber.cs	(revision 11672)
@@ -36,4 +36,5 @@
   [StorableClass]
   [Creatable("Parameterless Population Pyramid")]
+  // In the GECCO paper, Section 2.1
   public class HillClimber : AlgorithmBase {
     [Storable]
@@ -82,4 +83,5 @@
       }
     }
+
     public static double ImproveToLocalOptimum(IBinaryVectorProblem problem, bool[] solution, double fitness, IRandom rand) {
       var tried = new HashSet<int>();
Index: branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/LinkageCrossover.cs
===================================================================
--- branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/LinkageCrossover.cs	(revision 11669)
+++ branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/LinkageCrossover.cs	(revision 11672)
@@ -29,5 +29,5 @@
 namespace HeuristicLab.Algorithms.ParameterlessPopulationPyramid {
   public static class LinkageCrossover {
-
+    // In the GECCO paper, Figure 3
     public static double ImproveUsingTree(LinkageTree tree, IList<bool[]> donors, bool[] solution, double fitness, IBinaryVectorProblem problem, IRandom rand) {
       var options = Enumerable.Range(0, donors.Count).ToArray();
Index: branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/LinkageTree.cs
===================================================================
--- branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/LinkageTree.cs	(revision 11669)
+++ branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/LinkageTree.cs	(revision 11672)
@@ -75,4 +75,5 @@
     // While "total" always has an integer value, it is a double to reduce
     // how often type casts are needed to prevent integer divison
+    // In the GECCO paper, calculates Equation 2
     private static double NegativeEntropy(int[] counts, double total) {
       double sum = 0;
@@ -85,4 +86,6 @@
     }
 
+    // Uses the frequency table to calcuate the entropy distance between two indices.
+    // In the GECCO paper, calculates Equation 1
     private double EntropyDistance(int i, int j) {
       // This ensures you are using the lower triangular part of "occurances"
@@ -111,4 +114,8 @@
     }
 
+    // Performs O(N^2) clustering based on the method described in:
+    // "Optimal implementations of UPGMA and other common clustering algorithms"
+    // by I. Gronau and S. Moran
+    // In the GECCO paper, Figure 2 is a simplified version of this algorithm.
     private void Rebuild() {
       // Keep track of which clusters have not been merged
@@ -160,5 +167,4 @@
           topLevel.Swap(end_of_path, best_index);
           end_of_path++;
-
         }
         // Last two elements in the path are the clusters to join
Index: branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/ParameterlessPopulationPyramid.cs
===================================================================
--- branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/ParameterlessPopulationPyramid.cs	(revision 11669)
+++ branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/ParameterlessPopulationPyramid.cs	(revision 11672)
@@ -158,4 +158,5 @@
     }
 
+    // In the GECCO paper, Figure 1
     private double iterate() {
       // Create a random solution
Index: branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/Problems/DeceptiveStepTrapProblem.cs
===================================================================
--- branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/Problems/DeceptiveStepTrapProblem.cs	(revision 11669)
+++ branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/Problems/DeceptiveStepTrapProblem.cs	(revision 11672)
@@ -31,4 +31,5 @@
   [StorableClass]
   [Creatable("Parameterless Population Pyramid")]
+  // In the GECCO paper, Section 4.1
   public class DeceptiveStepTrapProblem : DeceptiveTrapProblem {
     [StorableConstructor]
Index: branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/Problems/DeceptiveTrapProblem.cs
===================================================================
--- branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/Problems/DeceptiveTrapProblem.cs	(revision 11669)
+++ branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/Problems/DeceptiveTrapProblem.cs	(revision 11672)
@@ -32,4 +32,5 @@
   [StorableClass]
   [Creatable("Parameterless Population Pyramid")]
+  // In the GECCO paper, Section 4.1
   public class DeceptiveTrapProblem : BinaryVectorProblem {
     [StorableConstructor]
@@ -67,6 +68,8 @@
     }
 
+    // In the GECCO paper, calculates Equation 3
     protected virtual int Score(bool[] individual, int trapIndex) {
       int result = 0;
+      // count number of bits in trap set to 1
       for (int index = trapIndex; index < trapIndex + TrapSize; index++) {
         if (individual[index]) result++;
Index: branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/Problems/HIFFProblem.cs
===================================================================
--- branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/Problems/HIFFProblem.cs	(revision 11669)
+++ branches/Parameter-less Population Pyramid/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/Problems/HIFFProblem.cs	(revision 11672)
@@ -26,8 +26,9 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Algorithms.ParameterlessPopulationPyramid.Problems {
+namespace HeuristicLab.Algorithms.ParameterlessPopulationPyramid {
   [Item("Hierararchical If and only If problem", "Genome evaluated in nested subsets to see if each subset contains either all 0s or all 1s.")]
   [StorableClass]
   [Creatable("Parameterless Population Pyramid")]
+  // In the GECCO paper, Section 4.1
   public class HIFFProblem : BinaryVectorProblem {
     [StorableConstructor]
