make PortDescriptor a class (it was partly a struct).