switch case;
push pop handling