With the introduction of a context object, library initialization and shutdown can be performed without requiring any global state. A single process can use multiple independent contexts without any problems. The lack of a global state also improves the thread-safety of the library. At the moment, the new context object is primary used to implement an improved logging system.