Hi nullPointer here are some feedback on your work that is really important for us. Use Smalltalk way of formatting code. ========================== btn -> button please use normal smalltalk conventions. inClassSideBoolean ifTrue: [ aClass class compile: aStringCodeSource classified: (aSymbolCategoryName asString) notifying: nil. ] ifFalse: [ aClass compile: aStringCodeSource classified: (aSymbolCategoryName asString) notifying: nil. ]. or inClassSideBoolean ifTrue: [ aClass class compile: aStringCodeSource classified: (aSymbolCategoryName asString) notifying: nil. ] ifFalse: [ aClass compile: aStringCodeSource classified: (aSymbolCategoryName asString) notifying: nil. ]. getFiles: aStringPathOfDirectory | aFileDirectory fullPathOfFile aCollection | aFileDirectory := CLFileDirectory on: aStringPathOfDirectory. aCollection := Bag new. aFileDirectory fileNames do: [ :nameOfFile | fullPathOfFile := aFileDirectory fullPathFor: nameOfFile. aCollection add: fullPathOfFile. ]. ^aCollection. Don't use space everywhere is not smalltalk getFiles: aStringPathOfDirectory | aFileDirectory fullPathOfFile aCollection | aFileDirectory := CLFileDirectory on: aStringPathOfDirectory. aCollection := Bag new. aFileDirectory fileNames do: [:nameOfFile | fullPathOfFile := aFileDirectory fullPathFor: nameOfFile. aCollection add: fullPathOfFile]. ^aCollection. If you give me access I can reformat everything. Add some comments ========================== In the examples category there is no class comments so I have no idea about what I'm reading. There is not one single class comment: please add some of them. So far I could not find how to use it Do not refer to your class inside itself ========================== CLCompiler>>createMessageInClass: aClass withCodeSource: aStringCodeSource inProtocol: aSymbolCategoryName CLCompiler createMessageInClass: aClass withCodeSource: aStringCodeSource inProtocol: aSymbolCategoryName inClassSide: false. -> CLCompiler>>createMessageInClass: aClass withCodeSource: aStringCodeSource inProtocol: aSymbolCategoryName self createMessageInClass: aClass withCodeSource: aStringCodeSource inProtocol: aSymbolCategoryName inClassSide: false. Nice to see that you use traits :) ========================= Keep working. I still believe that a windowSpec based on a literal array is better than a byte array. Stef