renames provider
adds more configuration logic. Not completely hooked up yet
finishes high level input code. remains to be tested (and logic added for specific types)
gets tests working
all tests pass