Большой рефакторинг, добавил несколько визуальных эффектов, немного поменял логику