added support for multiple exchange types instead of using only fanout