Рефакторинг

Пофиксил баги, впилил исключения, кое-что поправил, есть еще идеологические проблемы,
не менял пока.