use single thread executor instead of cached thread executor