fixed option 2 function type