improve the way we do thread it