This is very expensive in general for such a frequent callback. Can you please yield the 4 progress values as 4 arguments, instead of yielding a hash?