DataCollector now runs in its own thread