finish ex5 include optional problem