John McCain takes a vow