           @addSocket
             bounds: node.bounds
             depth: depth
-            classes: rules
+            classes: padRules(wrapRules ? rules)
             parseContext: rules[0] #(if wrap? then wrap.type else rules[0])
 
   TreewalkParser.drop = (block, context, pred) ->
     if context.type is 'socket'
-      if '__comment__' in context.classes
+      if '__comment__' in parseClasses(context)
         return helper.DISCOURAGE
-      for c in context.classes
-        if c in block.classes
+      for c in parseClasses(context)
+        if c in parseClasses(block)
           return helper.ENCOURAGE
 
         # Check to see if we could paren-wrap this
         if config.PAREN_RULES? and c of config.PAREN_RULES
-          for m in block.classes
+          for m in parseClasses(block)
             if m of config.PAREN_RULES[c]
               return helper.ENCOURAGE
       return helper.DISCOURAGE
 
     else if context.type is 'indent'
-      console.log context.parseContext, block.classes
-      if '__comment__' in block.classes
-        return helper.ENCOURAGE
-
-      if context.parseContext in block.classes
+      console.log context.parseContext, parseClasses(block)
+      if '__comment__' in parseClasses(block)
+        return helper.ENCOURAGE
+
+      if context.parseContext in parseClasses(block)
         return helper.ENCOURAGE
 
       return helper.DISCOURAGE
 
     else if context.type is 'document'
-      if '__comment__' in block.classes
-        return helper.ENCOURAGE
-
-      if 'externalDeclaration' in block.classes or
-         'translationUnit' in block.classes
+      if '__comment__' in parseClasses(block)
+        return helper.ENCOURAGE
+
+      if 'externalDeclaration' in parseClasses(block) or
+         'translationUnit' in parseClasses(block)
         return helper.ENCOURAGE
 
       return helper.DISCOURAGE


      return 'comment'

    mark: (node, prefix, depth, pass, rules, context, wrap) ->
      unless pass
        context = node.parent
        while context? and @detNode(context) in ['skip', 'parens']
          context = context.parent

      rules ?= []
      rules.push node.type

      # Pass through to child if single-child
      if node.children.length is 1
        @mark node.children[0], prefix, depth, true, rules, context, wrap

      else if node.children.length > 0
        switch @detNode node

                @addSocket
                  bounds: bounds
                  depth: depth
                  classes: padRules(wrapRules ? rules)
                  parseContext: rules[0] #(if wrap? then wrap.type else rules[0])

              @addBlock
                bounds: bounds
                depth: depth + 1
                color: @getColor node, rules
                classes: padRules(wrapRules ? rules).concat(if context? then @getDropType(context) else @getShape(node, rules))
                parseContext: rules[0] #(if wrap? then wrap.type else rules[0])

          when 'indent'
