added type generator