         _node.off 'change'
     @
 
+  addRelationAssistant: ( node ) ->
+    [ match, name, chain ] = node.textContent.match /{\s*(\w+) of @(\w*)\s*}/
+    ( insertTo = node.parentNode ).removeChild node
+    segments = if chain.length then chain.split '.' else []
+    @assistants[ 'show' ].push ->
+      if relation = @getSource segments
+        if relation.childOf 'Collection'
+          relation.show name, insertTo, true
+          relation.subscribeTo @, 'hide', relation.reset
+        else
+          view = relation.show name, insertTo
+          view.subscribeTo @, 'hide', view.hide
+
   analize: ( value ) ->
     value.replace /{\s*(.+?)\s*}/g, ( match, sub ) => @analizeMatch sub
 

    @

  scanAssistants: ( node, path = [] ) ->
    if node.nodeType is 3 and /{\s*.+?\s*}/.test node.textContent
      @assistantsMap.push nodepath: path, type: 'Text'
    else if node.nodeName is 'ASSIST'
      @assistantsMap.push nodepath: path, type: 'Html'
    else

        .replace( /{\s*yield\s*}/g, '<div class="yield"></div>' )
      unless RegExp( "^<[^>]+" + @_name ).test @template
        @template = "<div class=\"#{ @_name }\">#{ @template }</div>"
      @parseAssistants()
      container.parentNode.removeChild container
    else console.warn 'Template %s not exists', @_name
    @

  parseAssistants: ->
