added new ways of constructing tsd's