продолжаю прилизывать этот говнокод