Add pop/push command

Targets #330.

Please review and comment.
Please review this part again.