move things around to make more sense.gp