end function is optional
remove end function