Hi keith Since I'm more in doing than talking.... I read the code of Installer I reformatted the code and publish it. I did not change anything so far. I suggest you to consider formatting as an important code readibility issue. Often I cannot see the complete method or I cannot understand its flow. Stef Now here is a list of questions/suggestions ============================== Installer class>>classes ^ Smalltalk not invoked seems bogus ============================== Entities seems a bad name for html elements mapping. ============================== history seems obsolete Installer class>>mczInstall is misclassified ============================== Installer class>>sake ^ self sake: (Sake ifNil: [ self classPackages current ]) Does not make sense to me if Sake is not loaded. setSakeToUse: aClass Sake := aClass is missing a comment to indicate what is the purpose of Sake? On the instance side ============================== user ^ user ifNil: [ '' ] user: anObject user := anObject user is undefined, thanks shout! ============================== classMCMczReader ^Smalltalk at: #MCMczReader ifAbsent: [ nil ] classMCReader ^Smalltalk at: #MCReader ifAbsent: [ nil ] classMczInstaller ^Smalltalk at: #MczInstaller ifAbsent: [ nil ] why nil and not error as all the others? ============================== createRBforBug: aBugNo | aStream fileList selFile aFileName | self setBug: aBugNo. fileList := self maFiles keys asOrderedCollection. fileList addLast: 'none'. ReleaseBuilderFor3dot10 clear. [selFile := UIManager default chooseFrom: fileList title: 'Choose what files load '. selFile = fileList size ifFalse:[ aFileName := fileList at: selFile. self logCR: 'obtaining ', aFileName, '...'. aStream := self maStreamForFile: aFileName . ReleaseBuilderFor3dot10 current packagesInfluenced: aStream named: aFileName. self installCS: aFileName from: aStream].selFile = fileList size]whileFalse. ReleaseBuilderFor3dot10 current newUpdateFor: aBugNo ReleaseBuilderFor3dot10 does not exist. ============================== installMCcs: aFileName from: stream | reader | reader := MCCsReader on: stream. should use self MCCsReader because MCCsReader may not exist ============================== skipTests is empty