if/else is uglier but gets us closer to what we want
i think this is shippable