add functional pearl