       for component in components
         # check for special name
         name = component.name
+        component.prototype._entity = @
         componentInstance = @_components[name] = new component(@, options[name] || options)
         componentInstance._entity = @
+        component.prototype._entity = null
         componentInstances.push(componentInstance)
         events = component.prototype._listensTo
         if events?

              @[v] = componentInstance['__' + v]

  for v, getSet of getSets
    config = (__v) ->
      return {
        get: ()->
          return @[__v]

    for name, extension of extensions
      component.prototype[name] = extension

  component.prototype._entity = null
  component.prototype._sync = null
  component.prototype._listensTo = null
  component.prototype._observes = null
