return a new array, not a reference to the existing one