Кажется, что тут дублирование логики из context