Есть куча готовых решений. https://ru.itao.com/item/10006014248736