implement TE functions