multithread bugfix && specify input