docs: def body(self, master):
          """Create dialog body. Return widget that should have initial
          focus.
  
          Inherited from tkinter.simpledialog.Dialog
          """
          self.frame = ttk.Frame(master, padding=(5, 5, 10, 10))
  
          self.lbl_message = ttk.Label(
              self.frame,
              text='Select User Type: ',
          )
          self.rb_student = ttk.Radiobutton(
              self.frame,
              text='Student',
              variable=self.rb_choice,
              value='student',
          )
          self.rb_tutor = ttk.Radiobutton(
              self.frame,
              text='Tutor',
              variable=self.rb_choice,
              value='tutor',
          )
          self.btn_ok = ttk.Button(
              self.frame,
              text='OK',
              command=self.ok,
          )
          self.btn_cancel = ttk.Button(
              self.frame,
              text='Cancel',
              command=self.cancel,
          )
          # assemble grid
          self.frame.grid(column=0, row=0, sticky=(N, S, E, W))
          self.lbl_message.grid(column=0, row=0, columnspan=2, sticky=(W, E))
          self.rb_student.grid(column=0, row=1, columnspan=2, sticky=W)
          self.rb_tutor.grid(column=0, row=2, columnspan=2, sticky=W)
          self.btn_ok.grid(column=0, row=3)
          self.btn_cancel.grid(column=1, row=3)
  
          # key bindings
          self.bind('<Return>', self.ok)
          self.bind('<KP_Enter>', self.ok)
          self.bind('<Escape>', self.cancel)
  
          self.rb_tutor.invoke()
  
          return self.btn_ok