main_prototype