Injectallthethings™

@nottombrown What do you think of this approach? I didn't want to spend too long on speccing out everything, but I think this approach *does* make it nicer to test this module on its own.