Added UNTESTED code that works through the card assignment issues. Write tests for all this and play around from there.