replaced Thread with SingleThreadExecutor