removed unneeded cast
ditched BaseCardType in favor of a few interfaces that actually differentiate, and added setters to match the getters
renamed the TextParser getXxx methods to parseXxx
removed some garbage comments
renamed all the parseXxx methods to just 'parse', and added an 'unparse' method
when unparsing, if the body is null, return null element (instead of empty)