use a separate context to avoid state problems