Oof, the number of options here is getting painfully long. This really needs an options hash, at least in 2.x

(My fault for piling on additional options in the first place, unfortunately it was necessary to retain backwards compatibility)