add fp function