Переработано хранение ошибок, так же излишний функционал вынесен в отдельные методы