вроде бы сделал но как-то криво надо отрефакторить