acctualy call the main function