why the polymorphic signatures? if name is optional, it should always come last, and if there's more than one optional arg, please pass it in an options hash.