public bool IsFullHouse(IHand hand)
        {
            if (!IsValidHand(hand))
                return false;

            return hand.IsFaceRepeated(2) &&
                   hand.IsFaceRepeated(3);
        }
        public bool IsThreeOfAKind(IHand hand)
        {
            if (!IsValidHand(hand))
                return false;

            return hand.IsFaceRepeated(3) &&
                  !hand.IsFaceRepeated(2); ;
        }
        public bool IsFourOfAKind(IHand hand)
        {
            if (!IsValidHand(hand))
                return false;

            return hand.IsFaceRepeated(4);
        }
        public bool IsHighCard(IHand hand)
        {
            if (!IsValidHand(hand))
                return false;

            return !hand.IsFaceRepeated(2) &&
                   !hand.IsFaceRepeated(3) &&
                   !hand.IsFaceRepeated(4) &&
                   !hand.AreCardsSameSuit() &&
                   !hand.AreCardsConsecutive();
        }
        public bool IsOnePair(IHand hand)
        {
            if (!IsValidHand(hand))
                return false;

            return hand.TimesXOfKind(2) == 1 &&
                  !hand.IsFaceRepeated(3);
        }