try use thread