push and pull routine