Что то слишком сложно получается. Надо бы подумать