                 args.push(@[arg])  
               getSetConfig.cb.apply(@_components[getSetConfig.ctx], args)
       }
-    Object.defineProperty(NewClass.prototype, v, config('__' + v))
+    Object.defineProperty(NewClass.prototype, v, config('__' + v, getSet))
 
   return NewClass
 

              @[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
