push before switch