Hello keith I read the NullPattern and I read the code of Rio. I saw that you use NullPattern and not nil eating I agree with you that killing FileDirectory is a goal in itself. :) I read the wiki page on rio, browse the code and read the fileman/rio comparison. I like rio (I was already convinced). I like the select: === I like the idea that we could have an internal representation for the file and platform related code would map that to the given OS. While I was discussing with mike, he told me that in Sophie they used consistently URI and got really platform independent code. === Do you think that URI could be introduced in Rio? And I have some questions === I like that we can have a sequential or cascading mode now I do not really see the point of this setModeToRenaming... is it in the Rio version? Then I do not understand why setModeToRenaming: true leads to changing file to disc: this seems to me obscure. " Introducing Modes - 'Renaming' Mode When a Rio is #setModeToRenaming, all of the above fileName and path manipulations are simultaneously actualized on disk. ??? When a mode is set using 'cascading' style, (e.g. #setModeToRenaming) the mode flag is set on the given instance as you would expect. In contrast, when a mode is set in sequential style, a new instance is created, making the mode setting temporary for the remainer of that 'sequential sentence'. This convention applies to all modes. e.g. * cascading: (myFile setModeToRenaming; yourself) base:'temp'. Â the renamng mode flag of myFile is set. * sequential: myFile rename base: 'temp'. Â myFile itself is untouched, the renaming mode flag is set in the myFile copy that performs #base: " === + do you think that , would not be better than + for path concatenation? It would fit better the concatenation in Smalltalk === ifAbsent I found strange that ifAbsent ^ self exists not ifTrue: [ self ] ifFalse: [ Null default ] => ifAbsent ^ self exists ifFalse: [ Null default ] ifTrue: [ self ] === I was thinking that it would be nice to have a group of pharoer going over rio and - giving feedback - formatting the code - writing the tests (I could not find them) Then in a second iteration integrating rio in the system and deprecating FileDirectory and others. === I was wondering why we could not have 'myFile.dat' asRio gzip compress => 'myFile.dat' asGzipCompress I saw that you have adaptor now with class extensions we could have new methods added for new adaptors. Especially since you have toyr setModeToXXX methods Stef