what is the purpose of undef