I think I'll have a number of initialization methods, at least one per message type, and any and all of them may or not be async. I don't know of any better way of making sure all tasks are done before proceeding