breaking down push(data) method for each step