functional library