design changes to my push method to facilitate reading