key to this branch is moving so much out of card.rb.  no more events / validations here.