Вот тут подробно разобран похожий пример.
И здесь тоже хорошо разобрано.