adding more lifetime armoring (and possibly breaking up a refcount loop?)