push and pop work