Initial templates and framework for generating types