 
         return provider.defaultColors[0]
 
-      setDefaultStyling: (selector) ->
+      setDefaultStyling: (selector, item) ->
         rule = @findRule(selector)
 
         if not rule?
-          rule = new StyleRule(selector, @findAvailableDefaultColor())
+          rule = new StyleRule(selector, angular.extend(@findAvailableDefaultColor(), @getDefaultCaption(item)))
           @rules.push(rule)
           @persist()
+        if not rule.props.caption?
+          default_caption = @getDefaultCaption(item)
+          return unless default_caption.caption?
+          angular.extend(rule.props, default_caption)
+          @rules.push(rule)
+          @persist()
+
+      getDefaultCaption: (item) ->
+        return {caption: '{id}'} if not item or not item.propertyList?.length > 0
+        default_caption = {caption: "{#{item.propertyList?[0].key}}"}
+        default_caption
 
       #
       # Methods for getting and modifying rules

        'border-color': '#9AA1AC'
        'border-width': '2px'
        'text-color-internal': '#FFFFFF'
        'caption': '{id}'
        'font-size': '10px'
      'relationship':
        'color': '#A5ABB6'

      forNode: (node = {}, idx = 0) ->
        selector = @nodeSelector(node, idx)
        if node.labels?.length > 0
          @setDefaultStyling(selector, node)
        @calculateStyle(selector)

      forRelationship: (rel) ->
        @calculateStyle(@relationshipSelector(rel))
