Думаю можно было бы сделать это проще