add a callback to push method