the correct ffunction