this seems really dangerous.  what if you had a trait :name?  wouldn't this collide with card#name?