         continue if not k? or not v?
         @defineAttribute k, v
     return
-  _toObject:(aOptions)->
-    result = super(aOptions)
+  _toObject:(aOptions, aNameRequired)->
+    result = super
     result.attributes = vAttrs = {}
     for k,v of @attributes
-      vAttrs[k] = t = v.toObject(aOptions)
-      delete t[NAME]
-      delete t.fullName
+      vAttrs[k] = t = v.toObject(aOptions, false)
+      #delete t[NAME]
       vAttrs[k] = t[TYPE] if getObjectKeys(t).length is 1
     result
   _decodeValue: (aValue)->

isString        = require 'util-ex/lib/is/type/string'
defineProperty  = require 'util-ex/lib/defineProperty'
inheritsObject  = require 'inherits-ex/lib/inheritsObject'
createObject    = require("inherits-ex/lib/createObject")
ObjectValue     = require './value/object'
attributes      = createObject require './attributes/object'
module.exports  = Type = require './attribute'

      type: ...
  ###
  defineAttribute: (aName, aOptions)->
    unless aName and aName.length
      throw TypeError('defineAttribute has no attribute name')
    if @attributes[aName]?
      throw TypeError('the attribute "' + aName + '" has already defined.')
    if isString aOptions
      vType = Type(aOptions)
      throw TypeError("no such type registered:"+aOptions) unless vType
