generate datatypes