немного оптимизирован