don't allocate in Cage::extract