add sub batch
refactor to get rid of pyramid of doom

CALLBACKS ARE FINE THEY SAID