decoupling the rendering from the library, adding some context