It was, yeah.  Probably `target.keys` was giving the keys back in a different order than you expected, or once you turned them into columns they were jumbled around.  I've had that problem a lot with this project... there's so much manipulation (especially taking data in and out of hashes and wrapper objects) that things get shuffled.  For the spec I would have done something like `cols.collect(&:name).sort.should == ['name', 'surname']` to compare the full arrays directly, but the way you did it is fine too.