Часть логики перешла из модели сюда