de-duplicate dn_expand, fix return value and signature, clean up