Refactor around the macro definitions into 3 files. Both converter and s...

...etter support Options
We should be testing for that upfront i think per our conversation earlier. The output of all this is type checked too. 

Not a bad thing ot have an abort here, but the error probably should just be more of an "I don't know how this could happen"