library restrucrure