multiple-port support for consumers

first version(working)