FluentSwitch impl & tests