def __new__(*args, **kwargs):
     realcls = args[0]
     #cls = realcls
     #print 'Baseobject __new__: ', cls
     if realcls != BaseObject:
         for cls in iterbases(realcls, BaseObject.__bases__[0]):
             #while issubclass(cls, BaseObject):
             #props = getattr(cls, '_Properties', {})
             props = cls.__dict__.get('_Properties', {})
             for key, val in props.iteritems():
                 if not hasattr(cls, key):
                     p_kwargs = val.copy()
                     p_kwargs.setdefault('name', key)
                     p_kwargs['cls'] = cls
                     property = Properties.ClsProperty(**p_kwargs)
                     setattr(cls, property.name, property)
             #cls = cls.__bases__[0]
     #return SignalDispatcher.dispatcher.__new__(*args, **kwargs)
     return object.__new__(realcls)