     }
     var list : Array <PlayItem> = Array()
     var date : TimeInterval
-    
+    var tally: Int {
+        get {
+            return self.list.count
+        }
+    }
+    var plays: Int {
+        get {
+            var plays = 0
+            for item in self.list {
+                plays += item.plays
+            }
+            return plays
+        }
+    }
+
     override var description: String {
         get {
             return String(format: "<%@: %p '%@' %ld item(s)", self.className, self, self.name, list.count)

        coder.encode(time, forKey: k.time)
        coder.encode(rank, forKey: k.rank)
        coder.encode(NSStringFromRect(rect), forKey: k.rect)
        coder.encode(runs, forKey: k.runs)
        coder.encode(label, forKey: k.label)
        coder.encode(hover, forKey: k.hover)
        coder.encode(alpha, forKey: k.alpha)

        dict[k.link] = link.absoluteString
        dict[k.date] = date
        dict[k.time] = time
        dict[k.plays] = plays
        dict[k.rank] =  rank
        dict[k.rect] = NSStringFromRect(rect)
        dict[k.plays] = plays
        dict[k.label] = label ? 1 : 0
        dict[k.hover] = hover ? 1 : 0
        dict[k.alpha] = alpha
