Requires arc.