Доработанная версия. Но выполнено не все, что хотел