change the main function