Появились кое-какие мысли, надо пробовать в коде. Если что, надеюсь с оптимизацией подскажите