 #endif
 
 /**
- 
- */
-private enum NodeAttribute {
+    `Nodes` group the `Attributes` classifying them depending
+    on the other `Attributes` they can conflict with. Those
+    subnodes are four and are defined by this enum
+ */
+private enum Subnode {
     
     case Left, Right, Center, Dimension
     
 }
 
 /**
- 
+    This class is in charge of handling those `Attributes` that
+    conflict or that may conflict in the feature in a `Condition`
+    change and `easy_reload` is triggered
  */
 internal class Node {
     
-    ///
+    /// `Attribute` occupying the left `Subnode`
     private(set) var left: Attribute?
     
-    ///
+    /// `Attribute` occupying the right `Subnode`
     private(set) var right: Attribute?
     
-    ///
+    /// `Attribute` occupying the center `Subnode`
     private(set) var center: Attribute?
     
-    ///
+    /// `Attribute` occupying the dimension `Subnode`
     private(set) var dimension: Attribute?
     
-    ///
+    /// Array of inactive `Attributes` not occupying any `Subnode`
     private(set) var inactiveAttributes: [Attribute] = []
    
-    ///
+    /// `Attributes` occupying any `Subnode`
     internal var activeAttributes: [Attribute] {
         return [self.left, self.right, self.center, self.dimension].flatMap { $0 }
     }
     
     /**
- 
+        Adds an `Attribute` to the `Node`. If the `Condition` for 
+        the `Attribute` is `false` then it's added to the array of
+        inactive `Attributes`. If the `Condition` is `true` evaluates
+        whether this `Attribute` is in conflict with any of the
+        `Subnodes` and if so deactivates those `Subnodes`. As a 
+        result, the active `Attribute` is added to its corresponding
+        `Node` and its associated `NSLayoutConstraint` returned in 
+        order to be activated by the `Item` owning the `Node`.
+        - parameter attribute: `Attribute` to be added to the `Node`
+        - returns: `NSLayoutConstraints` to be activated by the 
+        `Item` owning the current `Node`
      */
     func add(attribute attribute: Attribute) -> [NSLayoutConstraint] {
         guard attribute.shouldInstall() else {

            self.dimension = attribute
        }
        
        //
        if let layoutConstraint = attribute.layoutConstraint {
            return [layoutConstraint]
        }

    }
    
    /**
        Deactives all the active `Attributes` within the node and
        clears all the persisted ones
     */
    func clear() {
        self.deactivate(attributes: self.activeAttributes)
