support arc and no arc