wait why a replace and a push?