impl async invalidate