library now functional