До конца оптимизирован код, исправлены ошибки