Дизайн взят отсюда - http://mspa.reactor.cc/post/3463955
Другая работа на ту же тему - http://mspa.reactor.cc/post/3465835