(refactor) Refactor to use downcast_unchecked and no mem::forget.