work on the threading
merge