why change the whole return thing ?
I think defaults works fine as a hash.