Сделал базовую реализацию задания, надо будет мелочи "допинать" потом