Remember that the Cardlib match will be gone soon, and I do think that the other version (though a little more readable) isn't as clean codewise.  I would have left the tests each to one line, but the one test is going ...