Сделал рефакторинг, выделил коллбэки в отдельные классы, сделал комменты.