code: def factory_chat(js_obj, driver=None):
      
      if js_obj["kind"] not in ["chat", "group", "broadcast"]:
          raise AssertionError("Expected chat, group or broadcast object, got {0}".format(js_obj["kind"]))
  
      if js_obj["isGroup"]:
          return GroupChat(js_obj, driver)
  
      if js_obj["kind"] == "broadcast":
          return BroadcastChat(js_obj, driver)
  
      return UserChat(js_obj, driver)
docs: Factory function for creating appropriate object given selenium JS object