     }
     private func toObject() -> [String: AnyObject] {
         var p: [String: AnyObject] = [ "message": message ]
-        if let v = replyTo { p["replyTo"] = v }
+        replyTo.map { p["replyTo"] = $0 }
         if count(fileKeys) > 0 { p["fileKeys"] = fileKeys }
         if count(talkIds) > 0 { p["talkIds"] = talkIds }
         return p

            return form.toObject()
        case .SaveReadTopic(let (topicId, postId)):
            var p: [String: AnyObject] = [ "topicId": topicId ]
            if let v = postId { p["postId"] = v }
            return p
        case .GetMentions(let (from, unread)):
            var p: [String: AnyObject] = [:]
            if let v = from { p["from"] = v }
            if let v = unread { p["unread"] = v }
            return p
        case .CreateTopic(let form):
            return form.toObject()
        case .UpdateTopic(let (_, name, teamId)):
            var p: [String: AnyObject] = [:]
            if let v = name { p["name"] = v }
            if let v = teamId { p["teamId"] = v } else { p["teamId"] = "" }
            return p
        case InviteTopicMember(let (_, inviteNames, inviteMessage)):
            var p: [String: AnyObject] = [:]

    }
    private func toObject() -> [String: AnyObject] {
        var p = [String: AnyObject]()
        count.map { p["count"] = $0 }
        from.map { p["from"] = $0 }
        direction.map { p["direction"] = $0.rawValue }
        return p
    }
}
