Refactor to add flexibility and simplify API

...getting rid of the multitude of configuration types with confusing
names