Need to use multi-thread programming