first draft for the content type generator (needs a little bit of refactoring)