1) Изменено входное задание. Программа была разбита на не сколько отдельных слоев: Интерфейсы, Бизнес Логика, Консольный пользовательский интерфейс.

2) Полностью переписаны тесты программы.
3) Реализован принцип Dependency Injection.