Port, InputPort, OutputPort implementations. They will change later possibly.