fill the function