'Give it a class (and optional __init__ arguments), and it will
create an instance and register it using the class name.  If the
instance has a _core_name property, it will use that instead.
It returns the new instance.
core.registerNew(FooClass, arg) is roughly equivalent to
core.register("FooClass", FooClass(arg)).'

def registerNew(self, __componentClass, *args, **kw):

    name = __componentClass.__name__
    obj = __componentClass(*args, **kw)
    if hasattr(obj, '_core_name'):
        name = obj._core_name
    self.register(name, obj)
    return obj
