(function(ko, global){
    function Card(data, posInList, totalCards) {
        var self = this;
        self.id = ko.observable(data.id);
        self.name = ko.observable(data.name);
        self.selected = ko.observable(false);
        self.highlighted = ko.observable(false);
        self.inArea = ko.observable(true);

        self.fractionThroughList = posInList / totalCards;

        self.update = function(data, posInList, totalCards) {
            ko.observable(data.id);
            ko.observable(data.name);
            self.fractionThroughList = posInList / totalCards;
            return self;
        }

        self.highlight = function() {
            self.highlighted(true);
        }

        self.unHighlight = function() {
            self.highlighted(false);
        }

        self.addToArea = function() {
            self.inArea(true);
        };

        self.removeFromArea = function() {
            self.inArea(false);
        };
    }

    global.Card = Card;
})(ko, window);
@@ -447,37 +447,31 @@
             
-ko.observable
+self.id
 (data.id);%0A 
@@ -481,28 +481,24 @@
         
-ko.observabl
+self.nam
 e(data.n

fix bug: actually set the id and name based on the data