     /// Serializes an ElementNode into it's HTML String Representation
     ///
     private func print(element node: ElementNode, level: Int) -> String {
+        // Prefixes + Posfixes
+        var indentForOpeningTag = ""
+        var indentForClosingTag = ""
+        var prefixForOpeningTag = ""
+        var prefixForClosingTag = ""
+        var posfixForClosingTag = ""
+
+        if prettyPrintEnabled {
+            indentForOpeningTag = requiresOpeningTagPrefix(node) ? indentationString(for: level) : ""
+            indentForClosingTag = requiresClosingTagPrefix(node) ? indentationString(for: level) : ""
+            prefixForOpeningTag = requiresOpeningTagPrefix(node) ? String(.newline) : ""
+            prefixForClosingTag = requiresClosingTagPrefix(node) ? String(.newline) : ""
+            posfixForClosingTag = requiresClosingTagPosfix(node) ? String(.newline) : ""
+        }
+
+        // Serialize Attributes
         var attributes = ""
         for attribute in node.attributes {
             attributes += String(.space) + print(attribute: attribute)
         }
 
-        let indentForOpeningTag = requiresOpeningTagPrefixNewline(node) ? indentationString(for: level) : ""
-        let indentForClosingTag = requiresClosingTagPrefixNewline(node) ? indentationString(for: level) : ""
-        let prefixForOpeningTag = requiresOpeningTagPrefixNewline(node) ? String(.newline) : ""
-        let prefixForClosingTag = requiresClosingTagPrefixNewline(node) ? String(.newline) : ""
-        let posfixForClosingTag = requiresClosingTagPosfixNewline(node) ? String(.newline) : ""
-
+        // Opening Tag
         var html = prefixForOpeningTag + indentForOpeningTag + "<" + node.name + attributes + ">"
-
         guard requiresClosingTag(node) else {
             return html
         }
 
+        // Child Tags
         for child in node.children {
             html += print(node: child, level: level + 1)
         }
 
+        // Closing Tags
         html += prefixForClosingTag + indentForClosingTag + "</" + node.name + ">" + posfixForClosingTag
 
         return html

        ///
        var minimumIndentationLevel = 1

        /// Indentation Character to be applied
        ///
        var indentationCharacter = " "

        /// Indicates whether we want Pretty Print or not
        ///

            return String()
        }

        return String(repeating: indentationString, count: (level - minimumIndentationLevel))
    }

    /// Serializes a TextNode into it's HTML String Representation
