Some changes to the push function