main_function