change how $Modules work to allow for internal modules and better performance
build