setup: main function
setup: main function