programmatically automated type creation