from now two answers are require and two are optional