this is the best thread I've read in a while on rubynet