how does pseudo-pushpull work?