version 1.0 multi-threads