if p has more than 1 type, then unlist convert everything to character