This use of the 2 arg constructor re-inforces my fear wrt the above comment. The resulting ModuleDefinitions are not useable, so even if your code is just using the type+name (and I'm not sure it is), this will blow in our faces sooner than later.