adding push function ** broken **