This is copypasted everywhere, we should potentially pull this otu into a CallbackRouter or something