added the ability to order dependencies so that they could be executed in order
pass back an error message when attempting to omptimse amd modules with cyclic dependencies
convert an ordered list of defines to variables
move the creation of the module name into the ast defines method