The WCF type system leverages channel listeners and channel factories to build channels. Channel listeners have the added responsibility of listening for the availability of a connection. The architectural model in channel listeners and channel factories is very similar to the one in the Berkeley Sockets API. Like channels, channel listeners and channel factories are stacked at run time, and each channel listener or channel factory in the stack is responsible for creating one channel in the channel stack. Like channels, a transport channel factory or channel listener must reside at the bottom of the stack. Channel listeners and channel factories are never directly instantiated by user code; that job is reserved for a BindingElement. Binding and BindingElement objects are the topic of the next chapter, and at the conclusion of that chapter, you’ll see our DelegatorChannel channels, DelegatorChannelListener<TShape> and DelegatorChannelFactory<TShape>, in action.