use <SID> to accept local function instead of use global function