исправлены некоторые ошибки в логике