Select type and generate