How did this dodgy function last so long?
Fixed printf style logging.
Modified messaging to allow muliple providers in the form of MessagingEngines.