improve naming, use better code generation

@andrew-goldstein these optional params allow better code generation