fixed push and pop