removed singleton and passed instance of TaskExecutor to workers