better semantics for defaults