Отсюда и ниже сложный для чтения кусок, слишком большая вложенность — ничем не лучше callback style.
Точно можно упростить.