Thanks all. I want to explain why I do not like garbage collection. gc works great for memory. But one can't expects real resources (files, sockets, handles etc.) be released by gc. Reference counting is a little bit slower but predictable.