added support for different topologies