load the library only when required