refactor config handling

This refactors config handling post #54 to move struct tag handling to use a new interface for interacting with the config object