После того, как я решил свою проблему до этого вопроса Я продолжил расширять эту версию своего кода...