first push-pull