make the basic function workful