doing all the work