finish framework
add multi thread