                 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
 

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

    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
