We examine the basis structure of the linear relaxation of the generalized assignment problem. The basis gives a surprising amount of information. This leads to a very simple heuristic that uses only generalized network optimization codes. Lower bounds can be generated by cut generation, where the violated inequalities are found directly from the relaxation basis. An improvement heuristic with the same flavor is also presented.