         case .King:
             return nil
         default:
-            let rawVal = self.toRaw()
-            return Rank.fromRaw(rawVal + 1)
+            let rawVal = self.rawValue
+            return Rank(rawValue: rawVal + 1)
         }
     }
     

        case .King:
            return "K"
        default:
            return String(self.toRaw())
        }
    }
    

let piquetDeck = deck.filter {
    (card: Card) in
    // an alternative to switching on raw values is to make Rank Comparable, but that conflicts with making the acesHigh rule explicit
    switch card.rank.rawValue {
    case Rank.Two.rawValue...Rank.Six.rawValue:
        return false
    default:
        return true
