thanks lex for that. Im going to search for "ruby program design principles" or patterns /best practices with regards to functions. When i learnt C (10 years ago so its rusty) I was told to use pass by reference only when necessary. I think the reason being bug tracking etc maybe the reasoning was similiar ot that of not to over/misuse global variables. So switching to ruby where pass by reference is the only choice seems to be making my programming a little less smooth. Im just used to knowing that the original value wont be changed. Sure I could dup or clone everything but that seems to go against what ruby intends. if anyone has a good link or book regarding such differences, their implications and how to design along them rather than against (i.e. best practice) please give us a shout. In the meantime ill go away and do some searching and rejig my code. thanks -- Posted via http://www.ruby-forum.com/.