modify the function structure