minus unnecessary 'work' function