seperate driver which is main program and make_idf part to be clear