Вийшло не супер, але в цілому повинно працювати. Є куди зробити це трохи краще, але вже не хочеться розмотувати.