Requires arc == false