Split card logic into separate classes
Reimplement card status using Zones