Исправленная на паре версия: добавлены отсутствующие файлы, исправлены ошибки, все тесты проходят