added ThreadFactoryUtils to replace the same daemon code scattered all over