Может есть какой-то другой подход к решению?