generalizing card engine to support skins