Похожая тема, но должен признать твой метод экономичнее.
http://fallout.reactor.cc/post/2313740