libr impl. completed