CardDeck : possess the cards properties (your SOs)
CardSpawner : possess the cards monoBehaviour pool
CardShelf : update the cards position and rotation
CardObject : the card monoBehaviour
CardSpawner : initialise the cards and make the communication between the cards and the other classes