Dynamic consumers

Any reason you chose this approach rather than adding a base class for common listen properties?
For example:

AMQPAsyncListenProperties --> AMQPCommonListenProperties --> TransportListenProperties
AMQPListenProperties           --> AMQPCommonListenProperties --> TransportListenProperties