ClassLoader that refers to another ClassLoader, allowing a single instance to be passed around the codebase that
can later have its destination changed.
List that allows items to be added with a priority that will affect the order in which they are later iterated over.
Objects with a high priority will appear before objects with a low priority in the list.