#7 Выполнил второй пункт. Без тестов.