Separating the predicate from the action makes a lot of sense, but what's the reason for including the number of microseconds in the return value? Seems like a boolean would be enough.