add the multi-threading version code