подрефакторил код и добавил визивик