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