Introduced concept of separate input and output port classes