def METHOD_NAME(self) -> None:
    self.top.columnconfigure(0, weight=1)
    self.top.rowconfigure(0, weight=1)
    # draw ip4 and ip6 lists
    frame = ttk.Frame(self.top)
    frame.columnconfigure(0, weight=1)
    frame.columnconfigure(1, weight=1)
    frame.rowconfigure(0, weight=1)
    frame.grid(sticky=tk.NSEW, pady=PADY)
    ip4_checkbox = ttk.Checkbutton(
        frame, text="Enable IP4?", variable=self.enable_ip4
    )
    ip4_checkbox.grid(row=0, column=0, sticky=tk.EW)
    ip6_checkbox = ttk.Checkbutton(
        frame, text="Enable IP6?", variable=self.enable_ip6
    )
    ip6_checkbox.grid(row=0, column=1, sticky=tk.EW)
    ip4_frame = ttk.LabelFrame(frame, text="IPv4", padding=FRAME_PAD)
    ip4_frame.columnconfigure(0, weight=1)
    ip4_frame.rowconfigure(1, weight=1)
    ip4_frame.grid(row=1, column=0, stick=tk.NSEW)
    self.ip4_listbox = ListboxScroll(ip4_frame)
    self.ip4_listbox.listbox.bind("<<ListboxSelect>>", self.select_ip4)
    self.ip4_listbox.grid(sticky=tk.NSEW, pady=PADY)
    for index, ip4 in enumerate(self.ip4s):
        self.ip4_listbox.listbox.insert(tk.END, ip4)
        if self.ip4 == ip4:
            self.ip4_listbox.listbox.select_set(index)
    self.ip4_entry = ttk.Entry(ip4_frame)
    self.ip4_entry.grid(sticky=tk.EW, pady=PADY)
    ip4_button_frame = ttk.Frame(ip4_frame)
    ip4_button_frame.columnconfigure(0, weight=1)
    ip4_button_frame.columnconfigure(1, weight=1)
    ip4_button_frame.grid(sticky=tk.EW)
    ip4_add = ttk.Button(ip4_button_frame, text="Add", command=self.click_add_ip4)
    ip4_add.grid(row=0, column=0, sticky=tk.EW)
    ip4_del = ttk.Button(
        ip4_button_frame, text="Delete", command=self.click_del_ip4
    )
    ip4_del.grid(row=0, column=1, sticky=tk.EW)
    ip6_frame = ttk.LabelFrame(frame, text="IPv6", padding=FRAME_PAD)
    ip6_frame.columnconfigure(0, weight=1)
    ip6_frame.rowconfigure(0, weight=1)
    ip6_frame.grid(row=1, column=1, stick=tk.NSEW)
    self.ip6_listbox = ListboxScroll(ip6_frame)
    self.ip6_listbox.listbox.bind("<<ListboxSelect>>", self.select_ip6)
    self.ip6_listbox.grid(sticky=tk.NSEW, pady=PADY)
    for index, ip6 in enumerate(self.ip6s):
        self.ip6_listbox.listbox.insert(tk.END, ip6)
        if self.ip6 == ip6:
            self.ip6_listbox.listbox.select_set(index)
    self.ip6_entry = ttk.Entry(ip6_frame)
    self.ip6_entry.grid(sticky=tk.EW, pady=PADY)
    ip6_button_frame = ttk.Frame(ip6_frame)
    ip6_button_frame.columnconfigure(0, weight=1)
    ip6_button_frame.columnconfigure(1, weight=1)
    ip6_button_frame.grid(sticky=tk.EW)
    ip6_add = ttk.Button(ip6_button_frame, text="Add", command=self.click_add_ip6)
    ip6_add.grid(row=0, column=0, sticky=tk.EW)
    ip6_del = ttk.Button(
        ip6_button_frame, text="Delete", command=self.click_del_ip6
    )
    ip6_del.grid(row=0, column=1, sticky=tk.EW)
    # draw buttons
    frame = ttk.Frame(self.top)
    frame.grid(stick=tk.EW)
    for i in range(2):
        frame.columnconfigure(i, weight=1)
    button = ttk.Button(frame, text="Save", command=self.click_save)
    button.grid(row=0, column=0, sticky=tk.EW, padx=PADX)
    button = ttk.Button(frame, text="Cancel", command=self.destroy)
    button.grid(row=0, column=1, sticky=tk.EW)