refactor providers to slightly improve design by removing dependency upon string
inflection allowing for greater extendability later. more refactoring will be
required later, but this is an iterative step.