Started in on a more universal code generation framework. This version will not build.