switching to lambda (easiear to read the error message)
adding get_port_argument