creating custom topologies