Port is strictly controlled. InputPort can connect only with OutputPort, and the connection is checked and maintained by both sides. Ports should have a component and a name, so they are traversable now. #3