return true if work done, false otherwise