подчистил немного, прокомментировал методы