http://habrahabr.ru/post/224831/ - компоненты