add thread wrapper