multi-thread support implemented