new transform generation function