requires_arc = false