the initial main  func