(2-way push)