there should probably be a t-function