 
 		# See if we need to add this property to the internal properties class
 		if @ isnt BaseClass
-			descriptor.enumerable = descriptor.enumerable || !descriptor.hasOwnProperty('enumerable')
+			descriptor.enumerable ?= not descriptor.hasOwnProperty('enumerable')
 			descriptor.propertyName = propertyName
 
 			if not descriptor.excludeFromProps

	@define "props",
		excludeFromProps: true
		get: ->
			value = {}
			for k, v of @constructor[DefinedPropertiesKey]
				value[k] = @[k]

			value

		set: (value) ->
			for k, v of value
				if @constructor[DefinedPropertiesKey].hasOwnProperty(k)
					if @constructor[DefinedPropertiesKey].exportable isnt false
						@[k] = v

	@define "id",
		get: -> @_id

			@_getPropertyDefaultValue k

	_getPropertyDefaultValue: (k) ->
		@_propertyList()[k]["default"]

	_propertyList: ->
		@constructor[DefinedPropertiesKey]
