Я так понимаю, не штатное это решение? Написал как-то сложно.