add atMostOneValuePerSlot function