added library functionality