extending work function