ConfigurationFactory refactoring

Closes #144, closes #143, closes #78, closes #23, closes #9