replace functionp with fboundp