def do__class(self):

		#Definition the MethodsList
		ClassedFunctionsList=SYS._filter(
			lambda __ListedVariable:
				type(__ListedVariable).__name__=="function"
				if hasattr(__ListedVariable,'__name__')
				else False,
				self.DoClass.__dict__.values()
		)

		#debug
		'''
		print('l 66 Classer')
		print("ClassedFunctionsList is ",WatchedFunctionsList)
		print('Set all the mimick methods')
		print('')
		'''

		#/###################/#
		# Mimic all that you can find 
		#

		#Get all the hooking methods
		ClassedMimickFunctionsList=SYS._filter(
			lambda __ListedVariable:
			__ListedVariable.__name__.startswith(
					Mimicker.MimickingWrapPrefixStr
			)
			if hasattr(__ListedVariable,'__name__')
			else False,
			ClassedFunctionsList
		)

		#debug
		'''
		print('l 82 Classer')
		print("ClassedMimickFunctionsList is ",ClassedMimickFunctionsList)
		print('')
		'''

		#map
		map(	
				lambda __ClassedMimickFunction:
				self.mimic(
					Mimicker.MimickingWrapPrefixStr.join(
						__ClassedMimickFunction.__name__.split(
							Mimicker.MimickingWrapPrefixStr)[1:]
						)
				),
				ClassedMimickFunctionsList
			)

		#/###################/#
		# Set the watch methods 
		#

		#debug
		'''
		print('l 104 Classer')
		print('set the watch functions')
		print('self.ClassingWatchMethodStrsList is ',self.ClassingWatchMethodStrsList)
		print('self.DoClass.DoMethodStr is ',self.DoClass.DoMethodStr)
		print('')
		'''
		
		#map
		map(	
				lambda __ClassingWatchUnboundMethodStr:
				self.watch(
					True,
					**{'ObservingWrapMethodStr':__ClassingWatchUnboundMethodStr}
				),
				self.ClassingWatchMethodStrsList
			)

		#/###################/#
		# Set the switch methods 
		#

		#debug
		'''
		print('l 104 Classer')
		print('set the switch functions')
		print('self.ClassingSwitchMethodStrsList is ',self.ClassingSwitchMethodStrsList)
		print('self.DoClass.DoMethodStr is ',self.DoClass.DoMethodStr)
		print('')
		'''
		
		#map
		map(	
				lambda __ClassingSwitchUnboundMethodStr:
				self.switch(
					True,
					__ClassingSwitchUnboundMethodStr
				),
				self.ClassingSwitchMethodStrsList
			)

		#/###################/#
		# Check for overriden propertize_ methods 
		#

		#Debug
		'''
		print('Classer l 125')
		print('Check for overriden propertize_ methods ')
		print('self.DoClass.InspectMethodDict')
		print(self.DoClass.InspectMethodDict)
		print('')
		'''

		#filter
		ClassedPropertyNewMethodDict=dict(
			SYS._filter(
				lambda __MethodItemTuple:
				__MethodItemTuple[0].startswith(
						Propertiser.PropertyPrefixStr
					) and (
					SYS.getNewMethodBool(self.DoClass,__MethodItemTuple[0])
					#getattr(
					#	self.DoClass.__bases__[0],
					#	__MethodItemTuple[0]
					#)!=__MethodItemTuple[1]
					#if hasattr(self.DoClass.__bases__[0],
					#	__MethodItemTuple[0]
					#) else True
				),
				self.DoClass.InspectMethodDict.items()
			)
		)

		#Debug
		'''
		print('Classer l 147')
		print('self.DoClass is ')
		print(self.DoClass)
		print('ClassedPropertyNewMethodDict is')
		print(SYS.indent(ClassedPropertyNewMethodDict))
		print('')
		'''
		
		#map
		ClassedPropertyKeyStrsList=map(
				lambda __PropertizedKeyStr:
				SYS.deprefix(
					__PropertizedKeyStr,
					Propertiser.PropertyPrefixStr
				)[3:],
				ClassedPropertyNewMethodDict.keys()
			)

		#map reset the properties
		map(
				lambda __PropertyKeyStr:
				setattr(
						self.DoClass,
						__PropertyKeyStr,
						property(
								getattr(
									self.DoClass,
									Propertiser.PropertyPrefixStr+'get'+__PropertyKeyStr
								),
								getattr(
									self.DoClass,
									Propertiser.PropertyPrefixStr+'set'+__PropertyKeyStr
								),
								getattr(
									self.DoClass,
									Propertiser.PropertyPrefixStr+'del'+__PropertyKeyStr
								)
							)
					),
				ClassedPropertyKeyStrsList
			)

		#/###################/#
		# Set maybe a structure 
		#

		#Check
		if self.ClassingStructureVariable!=None:

			#Check
			if hasattr(
					self.ClassingStructureVariable,'items'
				):
				ClassedStructureVariable=self.ClassingStructureVariable.items()
			else:
				ClassedStructureVariable=self.ClassingStructureVariable


			#debug
			'''
			print('Classer l 241')
			print('We structure here')
			print('self.ClassingStructureVariable is ')
			print(self.ClassingStructureVariable)
			print('')
			'''

			#map add the sing plurals
			map(
				lambda __ItemTuple:
				SYS.addSingPlural(
					*__ItemTuple
				),
				ClassedStructureVariable
			)

			#Define a class
			class StructureClass(SYS.StructurerClass):pass
			StructureClass.__name__=SYS.getClassStrWithNameStr(self.DoClass.NameStr+'sStructurer')
			StructureClass.ManagingValueClass=self.DoClass

			#set
			setattr(
				self.Module,
				StructureClass.__name__,
				StructureClass
			)

			#dict
			ClassesDict=dict(
					map(
						lambda __ItemTuple:
						(__ItemTuple[1],StructureClass),
						ClassedStructureVariable
					)
				)

			#map
			if self.DoClass.TeamingClassesDict==None:
				self.DoClass.TeamingClassesDict=ClassesDict
			else:
				self.DoClass.TeamingClassesDict.update(
					ClassesDict
				)
	def __call__(self,_Class):

		#debug
		'''
		print('Defaultor l.31 __call__ method')
		print('_Class is ',_Class)
		print('')
		'''

		#Call the parent init method
		BaseClass.__call__(self,_Class)

		#debug
		'''
		print('Defaultor l.47 look for an __init__ method')
		print('_Class is ',_Class)
		print('')
		'''

		#Check
		if hasattr(_Class,"__init__"):

			#debug
			'''
			print('It has an __init__ method')
			print('_Class is ')
			print(_Class)
			print("SYS.getNewMethodBool(_Class,DefaultWrapMethodStr)")
			print(SYS.getNewMethodBool(_Class,DefaultWrapMethodStr))
			print('')
			'''
			
			#get
			InitWrapUnboundMethod=getattr(
				_Class,
				DefaultWrapMethodStr
			) if SYS.getNewMethodBool(
				_Class,DefaultWrapMethodStr
			) else DefaultInitFunction

			#set the DefaultDict
			_Class.InitInspectDict=SYS.InspectDict(InitWrapUnboundMethod)

			#Definition the DefaultAttributeItemTuplesList
			DefaultAttributeItemTuplesList=map(
					lambda __DefaultSetItemTuple:
					(
						DefaultPrefixStr.join(
						__DefaultSetItemTuple[0].split(DefaultPrefixStr)[1:]
						),
						getDefaultedValueVariableWithSetVariable(
								__DefaultSetItemTuple[1]
							)
					),
					SYS._filter(
								lambda __DefaultItemTuple:
								__DefaultItemTuple[0].startswith(DefaultPrefixStr),
								_Class.InitInspectDict['DefaultOrderedDict'].items()
							)
			)

			#set
			_Class.DefaultAttributeVariablesOrderedDict=collections.OrderedDict(
					DefaultAttributeItemTuplesList
				)

			#debug
			'''
			print('_Class.DefaultAttributeItemTuplesList is ',_Class.DefaultAttributeItemTuplesList)
			print('')
			'''

			#set at the level of the class
			map(	
					lambda __DefaultSetItemTuple:
					setattr(_Class,*__DefaultSetItemTuple),
					_Class.DefaultAttributeVariablesOrderedDict.items()
				)

			#set the DefaultSpecificKeyStrsList
			_Class.DefaultSpecificKeyStrsList=_Class.DefaultAttributeVariablesOrderedDict.keys()

			#Get the BaseKeyStrsList
			_Class.DefaultBaseKeyStrsList=list(
								SYS.collect(
											_Class,
											'__bases__',
											'DefaultSpecificKeyStrsList'
								)
			)
			
			#Debug
			'''
			print("l 269 Defaultor")
			print("DefaultDecorationMethodStr is ",DefaultDecorationMethodStr)
			print("")
			'''

			#Define the decorated function
			InitExecStr="def "+DefaultDecorationMethodStr+"(_InstanceVariable,"
			InitExecStr+="*_LiargVariablesList,"
			InitExecStr+="**_KwargVariablesDict):\n\t"
			InitExecStr+="initDefault(_InstanceVariable,"
			InitExecStr+="*_LiargVariablesList,"
			InitExecStr+="**dict(_KwargVariablesDict,**{'DefaultWrapMethodStr':'"+DefaultWrapMethodStr+"','DefaultClassStr':'"+_Class.__name__+"'}))\n\t"
			
			#debug
			'''
			print('Defaultor l 280')
			print('InitExecStr is ')
			print(InitExecStr)
			print('')
			'''
			
			#exec
			six.exec_(InitExecStr)

			#set with the specific name
			setattr(
						_Class,
						DefaultDecorationMethodStr,
						locals()[DefaultDecorationMethodStr]
					)

			#set with the DoMethodStr shortcut
			setattr(
						_Class,
						"__init__",
						locals()[DefaultDecorationMethodStr]
					)

			#set in the class fi not already 
			if hasattr(_Class,'setDefault')==False:

				#set setDefault
				setattr(
							_Class,
							setDefault.__name__,
							setDefault
						)
				
				#set setDefaultMutable
				setattr(
							_Class,
							setDefaultMutable.__name__,
							setDefaultMutable
						)

			#Add to the KeyStrsList
			_Class.KeyStrsList+=[
										#'DefaultAttributeItemTuplesList',
										'DefaultInitBool',
										'DefaultAttributeVariablesOrderedDict',
										'InitInspectDict',
										'DefaultBaseKeyStrsList',
										'DefaultSpecificKeyStrsList'
								]+_Class.DefaultAttributeVariablesOrderedDict.keys()
		#Return 
		return _Class