add if_undefined_then_def function