port might get set to nil