added async thread
resolve conflict