немного отрефакторил