added a callback in push method