add multi-thread, restructured project