added a callback on result completion