topology is now templated