         print("****** deinit MediaPlayState ******")
     }
     
-    func clear() {
+    private func clear() {
         self.clear(mediaId: "unknown")
     }
     
-    func clear(mediaId: String) {
+    private func clear(mediaId: String) {
         self.mediaId = mediaId
         self.mediaUrl = ""
         self.positionMS = 0
         self.timestampMS = MediaPlayState.now()
     }
     
-    public func dump() {
-        print("mediaType \(mediaType)")
-        print("mediaId   \(mediaId)")
-        print("mediaUrl  \(mediaUrl)")
-        print("position  \(position)  \(positionMS)")
-        print("timestamp \(timestamp) \(timestampMS)")
-    }
-
     public static func now() -> Int64 {
         return Int64(Date().timeIntervalSince1970 * 1000.0)
     }
     
+    public func dump(location: String) {
+        print(location + ": " + self.toString())
+    }
+    
+    public func toString() -> String {
+        let result = "MediaId: \(self.mediaId), MediaUrl: \(self.mediaUrl)," +
+            " Position: \(self.position), Timestamp: \(self.timestamp)"
+        return result
+    }
+
     /**********************************************************************************************
     * Adapter Methods
     ***********************************************************************************************/

        }
    }
    
    init(mediaType: String) {
        self.mediaType = mediaType
        self.mediaId = "unknown"
        self.mediaUrl = ""

        } catch let err {
            handleError(caller: "MediaPlayState.retrieve", error: err)
        }
        self.dump(location: "retrieve")
    }
    
    public func update(position: CMTime) {
