changed #optional() and #default() resolving priority