добавлены unit тесты, изменена иерархия, добавлена визуальная форма