argv is read first