Работает
но ужасно некрасивый конструктор