primitive TF