Кое что отрефакторил.....