       @_unregister()
 
   ############################
-  # NAME Property and Inspectors
+  # Inspectors
   ############################
-
-  @concreteProperty
-    name:
-      default: null
-      validate: (v) -> v == null || isFunction v.toString
-      preprocess: (v) -> if v == null then v else v.toString()
-
-  @virtualProperty
-    key:
-      getter: (pending) -> @getState(pending)._name
-      setter: (v) -> @setName v
 
   @getter
     instanceId: -> @remoteId || @getUniqueId()

    @queueEvent "unregistered"
    null

  @getter
    isRegistered: -> !!_elementInstanceRegistry[@getInstanceId()]

  _updateRegistryFromPendingState: ->
    if pendingParent = @getPendingParent()
      @_register() if pendingParent.getIsRegistered()

    elementFactory.register @ if @registerWithElementFactory()
    super

  ############################
  # name/key property
  ############################

  @concreteProperty
    name:
      default: null
      validate:   (v) -> v == null || isFunction v.toString
      preprocess: (v) -> if v == null then v else v.toString()

  @virtualProperty
    key:
      getter: (pending) -> @getState(pending)._name
      setter: (v) -> @setName v


  ##########################
  # Element Registry
  ##########################
  @_elementInstanceRegistry: _elementInstanceRegistry = {}

  @getter
    isRegistered: -> !!_elementInstanceRegistry[@getInstanceId()]

  @getElementByInstanceId: (instanceId) -> _elementInstanceRegistry[instanceId]

  _register: ->
