The names of the product elements
The name of the type
Called when an exception is thrown from load.
the thrown exception
Loads the module. Should not be invoked directly. Calling the companion object's load method should invoke this method exactly once.
Used to sort highest priority to lowest