Tidied up the cardState model, removing the need for a listmodel