finished functional library