комментирование, небольшой рефакторинг, по прежнему есть баги