thanks for your insights response ara. i did my last post before reading your first... the Alib::OrderedAutoHash looks very nice and is one of the things that i searched. i think i allways used sparse arrays|hashes before, with some little exceptions while programming in C#.... your example with 2**128 showed me that php uses sparse arrays/hashes because when i was using something like $serial_number[7099144]='blah' i would have instantly beaten the allowed ram limit. i think i became a little savaged while using php (hope this is proper english) maybe i can still be saved, i'm programming a board game (carcasonne) in gtk to learn ruby. back on track about auto-re-initialization of nil (or empty variable is better, i think) to Hash (forget about Array) i found that the nils all have the same id, so by changing one of them to an Array i would turn them all. i dont want something like this powerfull "become" from smalltalk some other ppl talked about, it can (infact must) get a new id, and does not need to retain its interior (whats in nil that i wanted to retain) anyone having an idea of how to do this ?