Посмотрите здесь. Там подобный пример, но попроще.