artifact manager must be per-thread