ya, the more i look at this, the more i don't understand why this is different from the mset case. you seem to be assuming this is always length 1 here, but can be arbitrary length in mset, even though they're calling the same methods with the same inputs.