add a main function