first init
complete the main function
complete the main function
complete the main function