Callback now takes three parameters