implement uc, lc, tc.