Update function order
Support proper syntax form: cond
Refactor undef