разбил таки на функции