The initial swapping problem used a generalized data type, T, to introduce the operational pattern necessary to swap the contents of two variables. The pattern works for all fundamental types (i.e., programmers can replace T with an int, double, etc.). In the initial problem, two glasses of liquid represented two variables in a program. Directly pouring the liquid from one glass to the other would overflow the second glass, demonstrating the need for a third, temporary glass. The behavior of program variables isn't quite the same - the data in the "pouring" variable overwrites the data in the receiving variable - but the idea is similar: a variable can't simultaneously save two distinct values. Just as we needed a temporary glass to solve the problem with glasses and liquid, we also need a third, temporary variable to solve the swapping problem in a computer program. The second version of the swapping problem replaces T with a structure object.