added the library source code