# Internal Changes

The `Loader` class has been removed, and its methods have become instance-level methods on the `Configuration` object. The `Configuration` has a new method `setClassLoader()` which can be used to set the `ClassLoader` that Saxon will use for all dynamic loading. There is another method of the same name on the `Controller` object, which applies locally to one transformation or query thread. This is designed to help prevent problems that arise in environments such as Eclipse that have their own customized class loader: when Eclipse loads a class using one class loader, and Saxon loads it using a different class loader, the class hierarchy is not fixed up properly and a `ClassCastException` can result.

The `info` argument to the `MappingFunction.map()` interface has been dropped. Instead, mapping functions that require context information are now implemented as classes that can be instantiated at run time and initialized with the relevant information. This is a cleaner design with better type safety, better control over thread-safety, and less overhead for mapping iterators that don't require this context information.

The code for wrapping a sequence (used with the XQuery -wrap option) has been refactored, so that it can now be used as a component on any push pipeline, and no longer requires the input sequence or output document to be built as an in-memory document.

Next