/// <summary>
        /// Separate <paramref name="cards"/> by card labels
        /// </summary>
        /// <param name="cards">Unsepareted cards</param>
        /// <returns>Separeted cards</returns>
        public static IEnumerable<Card> SepareteCardByLabels(IEnumerable<Card> cards)
        {
            var separeted = new List<Card>();
            foreach (var card in cards)
            {
                // if more than one label, you should be separately
                if (card.Labels.Count > 1)
                {
                    foreach (var label in card.Labels)
                    {
                        var newCard = new Card();
                        newCard.InjectFrom(card);
                        newCard.Labels = new List<Card.Label> { label };
                        separeted.Add(newCard);
                    }
                }
                else
                {
                    separeted.Add(card);
                }
            }

            return separeted;
        }