push a new file logic