fixup! handle all 3 optional params
fixup! thoroughly test all parameter positions