add better thread version