It is all about the right order loading for 1) the view/event declaration methods that are needed for 2) loading the Sets.  

the cardlib stuff is loaded first, and it has to be fully loaded before we actually instantiate any cards, or stuff will still be missing when it does the include of the cardlib modules down in the middle of Card.

I thought I had it all working still in the action_* branches, but there is still a little bit of funny business around that.  That's why I was asking about where you really want the events to be defined.  I was having trouble making it CardController because it would immediately load Card too soon.