Move files around to have requires be more clear
Isolate knowledge of how to get the char_provider
Support passing in an alternate name for the formatter