a little shuffling around of namespaces and typedefs and topology
 constructor definition