Refactored CardList to use MultiSet
Major Cleanup and datatype improvements