Economic weights for restriction of selection index as optimal strategy for combining multiple traits

Presently, selection indices combine EBV belonging to many phenotypes accounting for production and functional traits. In this situation, ensuring positive genetic trends becomes difficult, especially when an antagonistic genetic relationship between traits exists. For this reason, guaranteeing zero genetic progress for some traits could be advantageous, as it would allow maximization of the productive characteristics while maintaining steady other antagonistic traits. This approach can also be useful for traits with an intermediate optimum, such as type traits, or for phenotypes for which it is difficult to quantify a specific economic weight. On this point, deriving the economic weight for a restricted selected index can be an optimal strategy. In this article, we provide a brief demonstration of how to derive economic weights by the restriction of some antagonistic traits. This procedure is then validated in a real-life situation using a dual-purpose cattle breed, due to the presence of more than one antagonistic trait with respect to milk yield. The R code is also provided to apply this procedure. The practical application to an actual situation demonstrates that the method produces feasible solutions in situations where more antagonistic traits are considered for selection, and prevents the detriment of some functional traits. Finally, we demonstrated how to obtain the desired restricted genetic progress when heterogeneous sources of information are present and its influence on selection response.


INTRODUCTION
The aggregate economic selection index is commonly used to classify animals based on a combination of the EBV for traits of interest weighted by their respective economic values (Hazel, 1943). Weights of combined traits are derived by considering the profit produced or the expectation of some functional aspects in a breed. However, the main difficulty in including many traits in the selection index is to ensure positive genetic progress for all traits, as many of them could be negatively correlated. For example, beef conformation in dual-purpose breeds is considered a productive trait alongside milk production (Cunningham and McClintock, 1974), but an antagonistic genetic relationship among the 2 traits exists (Fuerst-Waltl et al., 2016;Mazza et al., 2016;Sartori et al., 2018). Additionally, not all traits require positive genetic progress, and for some traits it is necessary to guarantee their maintenance (i.e., no genetic progress) over time (Miglior et al., 2005). For example, functional traits in dairy cattle, such as SCS, fertility, longevity, and some morphological traits, do not necessarily need improvement but just stability over time (Mancin et al., 2021). Furthermore, non-worsening genetic progress over time can be particularly suitable for local breeds, where the addition to the selection index of some non-tangible economical traits is sometimes required, as with breed-typical traits (Mancin et al., 2021).
In the literature, several methods to restrict the genetic gain of target traits to zero have been proposed (e.g., Kempthorne and Nordskog, 1959;Xie and Xu, 1997). Limiting the genetic progress to zero for some traits can be beneficial in all situations and allows the maximization of productive traits while maintaining functional and morphological traits intact.
This study aims to analytically demonstrate how to derive economic weights to be used in selection indexes to ensure zero genetic progress for certain traits. With this in mind, we analyzed the theoretical background behind both univariate and multivariate genetic progress, to demonstrate our procedure to restrict selection for some traits (i.e., ensure genetic progress equal to zero). Furthermore, we also provide a small example using genetic and phenotypic correlations in a dualpurpose cattle population, accounting for restriction on 2 traits antagonistic to milk yield, while maximizing the genetic gain for all considered traits. The R code to run all the requested steps is also provided in the article Appendix. We also showed the influence of heterogeneous information sources on the restricted selection indexes and how to consider this information during the selection process. A new approach for dealing with unequal accuracies across individuals is also proposed.

METHODS
This study did not require any specific ethics permit. The cattle sampled belonged to commercial private herds and were not experimentally manipulated. Samples were collected by technicians from the Breeders Association of Alpine Grey breed.

Theory Behind Univariate and Multivariate Selection Index and Economic Weights
The theory of deriving the economic weights in the restriction selection index has already been proposed in many other studies (Brascamp, 1984;Weller, 1994;Dekkers, 2003). For instance, Weller (1994) proposed a similar derivation to ours, which was generalized for traits that are under a specific constraint, not only under restriction, and Brascamp (1984) obtained the restricted selection weights by solving the equivalence a = −λ, which was, in turn, proposed in (Cunningham et al., 1970); see later. A completely different approach was proposed by (Dekkers, 2003), using an iterative procedure for obtaining economic weights in a nonlinear profit function.
However, in this article, economic restricted economic weights are derived in 2 different ways: (1) by backsolving the economic weights from the Hazel (1943) selection index and (2) by adapting the genetic selection index equation proposed in (Lin, 1990) to efficiently account for the different source of information. In addition, the theory behind restricted economic weights was demonstrated by starting from the classic univariate response to selection and then passing through the multivariate one; finally, the equations to obtain restricted or nonrestricted economic weights were demonstrated. At last, the influence of heterogeneous information in the restricted selection index is also presented and discussed. On this basis, a naive methodology that permits the user to account for different sources of information in the restricted genetic selection index was demonstrated.
Indeed, we can consider the response to selection (R) as the difference between the mean phenotypic value of the progeny of selected parents and the mean phe-notypic value of the whole parental generation before selection (Falconer and Mackay, 1996). The selection response for one trait of interest has been represented in many formulas. For consistency with what will be reported later, the formula presented in Harris (1964) is as follows: where β gy is the linear regression coefficient of the offspring genetic value g on selected parents' phenotype (y) and Δ I stands for the selection differential, representing the deviation of selected parents' mean from the population mean. Replacing β gy with Cov , g y y ( ) σ 2 and then grouping Δ I /σ y into i (i.e., the intensity of selection in standardized units), we obtain (Falconer and Mackay, 1996) where, under the assumption of a normal distribution of the phenotype y, the integration of i or Δ I /σ y provides the proportion of selected individuals (the parents) and r represents the accuracy . In a multiple trait framework, the parents' phenotype (y) is represented in multivariate form by the phenotypic (co) variances P = (y′y), and g by the genetic (co)variances G = (g′g). The maximization of the genetic progress for multiple traits is based on the indirect selection for an unobservable variable (H), by the truncated selection of an observable variable (I; Harris, 1964). The observable variable I is the linear combination of (I = b′y), where vector b represents the relative emphasis of each phenotype needed to achieve the desired goal. Therefore, the variance of selection index I (σ j ) can be expressed as Var(b′y) or, in matrix form, as b′Pb. The role of vector b is to maximize the genetic progress through maximization of the covariance between H and I, Cov(H,I) (Harris, 1964). Regression of H on I is linear for any set of b values. When no economic weight is applied, H is equal to the vector of the true breeding values H = g′. Given that Cov(G,P) = G, the covariance between H and I, Cov(y′b,g′), becomes Gb′. Note that proof of Cov(G,P) = G can be demonstrated by setting the 2 different selection response formulas in Falconer and Mackay (1996) equal. Considering i, P, and G as constants, maximizing genetic progress is equal to maximizing Cov(H,I), which means minimizing the squared differences between H and I; that is, (E[(H -I) 2 ]) (Céron-Rojas and Crossa, 2018), where E is the expected value. Setting the partial derivative (∂) of b equal to zero, by changing H and I in [3], the formula becomes Deriving the formula above, we have with b being the vector that maximized the genetic progress. Replacing Cov(G,I) with b′G and σ i with (b′Pb) 1/2 in formula [2], as in (Weller, 1994), we obtain Then, if we consider the different economic importance of traits, it becomes necessary to introduce a new element in equation [3]; that is, a vector (a) representing the weights of each trait. In accordance with Wolfová et al. (2001), vector a can be standardized by dividing the economic weight of the traits (t) by the respective genetic standard deviation (std) as a t_std = a t /σ at . From here when we refer to a, we refer to the vector a t_std (already standardized by trait's genetic standard deviations). Thus H can be described as a function H = a′g, called the linear aggregate genotype (Hazel, 1943), which is the function of the additive genetic values of the traits of interest, each having a specific economic weight. Therefore, in this form, the function H includes the expected genetic progress for each trait. When economic weights are used, the variance of H becomes Cov(a′g,a′g), which is equal to a′Ga, and correlation between H and I Cov(b′y,a′g) becomes a′Gb. Similarly, aiming to minimize the error of E[(H − I) 2 ], which is equal to

R a Gb b Pb
[8]

Restricted Selection Index
A restricted selection index is adopted to preserve the genetic value of specific phenotypes over time; that is, setting the genetic progress of these traits to 0. Three different approaches have been developed in literature (Kempthorne and Nordskog, 1959;Tallis, 1962;Cunningham et al., 1970), all leading to the same results. However, Tallis (1962) and further integration given by Céron-Rojas and Crossa (2018) are the most intuitive. The basic idea of these 2 studies is that to maintain the genetic progress at zero is equivalent to assuming a null correlation between selection index and response to selection for the traits considered [i.e., Cov(H,I) = 0]. Traits under constraint are collected in matrix C, where Cov(C,I) = 0, which means that Cb′ = 0. C is constructed as C′ = U′G, where U is an incidence matrix including as many 1's as the number of traits that have to be restricted, and 0's for the other traits. In this situation, the objectives of the selection index are two-fold: to minimize the error E[(H − I) 2 ], and to ensure null genetic progress for the traits of interest; that is, Cov(C,I) = 0. To solve both objectives, it becomes necessary to apply the Lagrange multipliers that allow maximizing (or minimizing) the value of a given function f(x, y, …) under another function of restriction, g(x, y, …) = c, as follows: It can be rearranged thus: where λ is the Lagrange multiplier. Thus As demonstrated above, E[(H − I) 2 ] is equivalent to a′Ga + b′Pb − 2a′Gb, and Cov(C,I) is equal to Cb′: Setting the partial derivative of b and λ equal to zero, we obtain The derivative results from b and λ of equation [12] are as follows: [13a] In matrix notation, equations [13] and [13a] can be represented as The solution of the matrix must be obtained by inversion (Céron-Rojas and Crossa, 2018); that is, and therefore λ b CP C C P C C P [15a] Solving [15a] for b could be considered as the equation that maximizes the function under the C′b restriction: Gathering by P −1 , and replacing (− can be written as b r = Kb, where matrix K is a projection matrix applying a linear transformation on b to reduce the space in which this vector is projected. The genetic progress (R) is then obtained by replacing b with b r in formula [8], that is b r = P −1 Ga, and then using the new weights in formula [5]: As mentioned at the beginning of this section, the theory behind multivariate response to selection has been extensively reported in the literature (Brascamp, 1984;Gibson, 1992;Weller, 1994;Dekkers, 2003). In this study, we analytically demonstrate how it is possible to obtain the economic weights (reported in vector a) when applying the restriction to variation for some traits in the selection indices. This passage is not described in the literature but has considerable practical importance.
The new economic weights can be obtained by considering equations [19] and [8] equal. Thus, we obtain b r = Kb, and, inverting formula [9b], we get a = G −1 Pb.
Then the values of new economic weights, which we call a r , are obtained substituting b with Kb in the previous equations: [20] The term a r represents the vector of the new weights to provide the traits to realize a null genetic progress for some target traits and a positive genetic gain for the others. It is possible to express the new economic weights on a scale from 0 to 1 by dividing each weight by the sum of the absolute values of the others. Finally, the final expected genetic progress can be obtained by using the new vector of economic weights in the general formula for genetic progress [5], but dividing a r for the genetic standard deviation of each trait t (i.e., a rt /σ at ; see Wolfová et al., 2001). In this way, the genetic progress with or without restriction can be compared.
A similar equation for obtaining the "pseudo" economic weights when all traits have a specific constraint (e.g., maximizing fat and protein production under the constraint that genetic progress for these traits is equal) was proposed by Weller (1994) using a different approach. However, both procedures to calculate the restricted selection response and its economic weights (the one proposed here and the one in Weller, 1994), albeit approximate, can be helpful during the decisionmaking process of how to drive the genetic improvement in a breed under selection for traits of interest. For example, the weights found in equation [20] can provide a rough estimate of the emphasis to be placed on each trait, which would allow evaluation of how and whether to move to a new breeding plan or evaluation of the inclusion (or not) of new phenotypes in the selection index.
However, the procedure proposed up to this point is not suitable for properly ranking the animals in some routine evaluations, as the b r or a r proposed respectively in equations [18] and [20] do not account for unequal accuracies across animals-a common situation in dairy cattle breeding schemes. In the next section, we will demonstrate that it is necessary to apply some adjustments to the equation of b r or a r before using it to obtain a selection index restricted for some traits. Note that the b r value is used to rank animals in the restricted phenotypic selection index (i.e., a combination of b obtained in equation [17] with y), whereas a r can be used in the restricted genetic selection index (i.e., a combination of a obtained in equation [20] with the estimated genetic values, ˆ). g

Restricted Selection Index in the Presence of Heterogeneous Information
As mentioned before, the main drawback of equations [1] and [19] is that they assume that all individuals share the same amount of information (i.e., the observed phenotype) and the same selective pressure. However, this is an oversimplification of what happens in livestock farming systems, where phenotypic information differs between sexes, and, consequently, accuracy may also change. Therefore, considering 2 pathways of selection (males and females), this discrepancy, equation [1] becomes [2], and considering unequal accuracy and selection intensity among sexes, the selection response becomes R = r H,Is σ H i s + r H,Id σ H i d . [21] The subscripts s and d refer to sire and dam, respectively; in this equation, for a matter of simplicity, we considered only 2 groups of candidates, but they might be further divided into "sire of sire"; "sire of dam," and so on. The term r H,I represents the correlation coefficient, which is equivalent to where subscripts s and d refer to sires and dams, respectively. This formulation can be further generalized, at the cost of higher complexity, considering multiple selection pathways (Rendel and Robertson, 1950;Hill, 1974). Note that equation [22] can be rearranged in equation [8] by multiplying the 2 a′Gb. Therefore, to ensure the desired zero genetic progress for the target traits, it becomes necessary to account for these heterogeneous sources of information (P s , P d ) and then recalculate the restricted b for each cohort (b d , b s ). The different selection intensities (i s , i d ) do not affect the estimates of a r and b r , but they do affect the predicted R. The effects of using homogeneous or heterogeneous b r in the restricted selection index are shown in a simulation reported in Supplemental File S1 (https: / / github .com/ enmancio/ Restricted _Selection _Index). We simulated the breeding scheme for Gray Alpine cattle using the AlphaSimR program (Gaynor et al., 2021; see Supplemental File S1).
A more effective method to account for the different heterogeneous sources of information among individuals is to use a genetic index as an alternative to the phenotypic selection index. The genetic index calculates the overall genetic merit of each individual as the com-bination of the individual estimated breeding values ĝ ( ) for each trait and the vector b: where ĝ is estimated as best linear unbiased prediction using mixed model equations (Henderson, 1975). In the genetic selection index, it is possible to obtain the desired genetic progress by simply combining the vector of restricted economic weights (a) with ĝ, because (1) b = a (see further), and (2)  .

I b g a g = ′ = ′ˆ.
[27] The other advantage of the genetic restricted selection index is that it is not necessary to calculate the weight for each cohort because different family structures and availability of information have already been accounted for in ĝ (Schneeberger et al., 1992). For this reason, in the genetic index this is equivalent to considering each animal (1 to n) as a different cohort, with some of them sharing the same selection intensity (i.e., sires and dams):  (Dekkers, 2003). Therefore, considering a single matrix G and P on equation [11] may not guarantee the desired restricted genetic progress for the reasons mentioned above. This situation can be addressed using 2 different approaches. The first approach, which is similar to that applied to obtain equation [22], is based on the re-estimation of a r by using different P and G values in equation [20]; that is, as many as the groups of candidates to selection.
The second approach is based on adapting the equation proposed in Lin (1990), allowing a simple procedure to compute the restricted economic weights directly in the genetic selection index. That procedure was based on the idea of the minimization of the error between I and I*, where I = a′g and I* = a r g. Lin (1990) solved that minimization through a similar approach to that used this manuscript, and obtained a r values that are equal to where C = (U′G). However, economic weights obtained in equation [32] cannot be applied in real-life scenarios, as Lin (1990) assumed that covariances among predicted genetic values ĝ ( ) are equal to the true ones (g).
Indeed, Schneeberger et al. (1992) claim that the equation proposed in Lin (1990) "ignores the effect of differing accuracies of prediction of individual EBVs for each animal, particularly when animal models are fitted to large unbalanced field data sets" (p. 1). Therefore, that problem can be overcome by substituting the G presented in equation [32] with its predicted value Ĝ ( ) that represents the (co)variance of the ĝ's. The Ĝ can be obtained, again, by using Henderson's (1975) formulations: where A is the pedigree relationship matrix (Henderson, 1975), G is the genetic (co)variance matrix, and ⊗ represents the Kronecker product. Note that in this case C aa represents the whole block of the inverse of the left-hand-side, not only its diagonal, representing the animal prediction error covariance. Therefore we can say that replacing Ĝ with G in equation [32] is possible to obtain the desired genetic gain even when accuracies differ among candidates. In fact, as for predicted genetic values, the predicted (co) variances matrix Ĝ considers each animal implicitly as a group of candidates to selection due to different accuracies. Despite this, that approach is not computationally straightforward, especially when many traits are considered. However, some approximations of predicted error variance can be used (Misztal and Wiggans, 1988;Hickey et al., 2009). The changes of the response to selection when G is substituted with Ĝ are also reported in the simulation provided in Supplemental File S1.
Milk yield (kg/d), FY (kg/d), PY (kg/d), and SCS were calculated from test-day data. Test-day records were collected regularly from 1997 to 2018, following the official Italian milk registration system, where data collection is done with an average interval of 4 wk between test-day collections. The SCS is obtained by normalizing the number of SCC (no./mL) as SCS = 3 + log 2 (SCC/10 5 ), following (Ali and Shook, 1980). The MUSC trait is one of the morphological measurements (a total of 20 traits, others not included in this Mancin et  Traits to which a restriction to the genetic progress was applied. study) routinely collected once in the lifetime of each individual, around the time of first calving, by expert classifiers; these traits are rated on a scale of 1 to 50 points with biological extremes. These measurements ranged from the year 2010 to 2020. First, multivariate response to selection was computed by using economic weights that were assigned to traits according to breeders' preference (see Step 1) and therefore aimed mostly to improve the dairy attitude of the breed (the largest income for this breed) through a direct selection on fat and protein yield. Then, a restriction to the genetic gain was applied to SCS and MUSC to prevent detriment to the traits. Constraining MUSC would allow safeguarduarding of the the beef attitude, which is part of the breed's uniqueness. Furthermore, restricting SCS allows prevention against detriment of udder health. The initial economic weights, the final economic weights obtained after restriction of SCS and MUSC to zero, and the corresponding responses to selection (ΔG) are reported in Table 3. Note that, before applying restriction in the selection index, both SCS and MUSC reported negative genetic progress, due to their negative genetic correlations with milk yield traits. The main equations described previously have been used throughout the example and are recalled at each of the 5 steps.
The procedure is presented as R code (see Appendix for details; R Core Team, 2017).

Step 1: Definition of Matrices and Vectors of Data
A fixed selection intensity of i = 1.755 corresponding to a percentage P = 0.1 of parents selected has been set together with the matrices of phenotypic and genetic (co)variances (P and G) for the target traits. The initial economic weights of the traits have been reported in the vector a, mimicking a supposed initial weight in the selection index of 0.3 and 0.4 for FY and PY, respectively, and 0.3 for MUSC. Both MY and SCS had an economic weight of zero at the initial step. These economic weights of traits were then standardized to calculate the expected initial genetic progress to be compared with the final one.

Step 3. Application of the Restriction
Milk yield traits (MY, FY, and PY) show a positive genetic progress, whereas SCS showed a positive increase (indicating detrimental effect on udder health), and MUSC results worsened by selection. Two restrictions to genetic progress were then applied to SCS and MUSC, to prevent their negative influence on udder health and reduction of muscularity. The procedure moved from the definition of matrix C, including the genetic variances for SCS and MUSC and their covariances with the other traits, in columns 3 and 4. This matrix is included within the restriction matrix K and used for finding the new coefficients b r . This step applied equations [12], [14], and [6], including the new coefficients.

Step 4. Obtaining the New Economic Weights for Traits Arising from the Restrictions in the Selection Index
Equation [15] was used in this case. The new economic weights were then divided by the sum of their absolute value to obtain a zero sum. Looking at the results (Table 2), it is possible to observe that applying the restriction for SCS and MUSC is equivalent to providing a negative economic weight of −0.008 to SCS, an economic weight of 0.010 to MUSC, and economic weights of 0.518 and 0.465 for FY and PY, respectively.

Step 5. Check the Genetic Progress
Aiming to check the final genetic progress to compare with the initial one, the new economic weights obtained are used in the equation of genetic progress (equation [6]) after dividing the economic weight by the genetic standard deviation of each trait. Table 3. Traits included in the example, with their initial economic weights (a) and the final economic weights (a r ) applied after a restriction for the genetic progress of 2 traits and the corresponding response to selection (ΔG and ΔG r ); for the purposes of our example, we assume that the sum of weights is 1

DISCUSSION
Finding the economic weights that make genetic progression equal to zero for some traits is helpful in dairy cattle breeding (as well as in other livestock species and breeds), in which many different traits are included in the selection index.
Particularly, our approach could be convenient for livestock, as in dairy and beef cattle, where selection indexes also include many morphological characters with an intermediate optimum, such as leg traits or udder conformation (Jeyaruban et al., 2012). In these traits, genetic improvement aims to maintain the phenotype at intermediate values (i.e., the traits will develop neither positively nor negatively). Other traits that should be maintained at the existing value while selecting for production improvement are the functional traits that show negative genetic correlations with production, such as birth weight versus growth in beef cattle. In the study of Winder et al. (1990), in Red Angus cattle, the genetic gain of birth weight was restricted to zero, aiming to preserve this trait despite the negative genetic correlations (around −0.7) with the growth rate. Other functional traits typically showing negative genetic correlations with production are fertility and longevity (Oltenacu and Broom, 2010). Depending on the breeds' attitude and the breeders' preferences, these traits are aimed at maintenance (as in dual-purpose cattle), or, in the case of dairy cattle breeds, they are subject to genetic improvements (positive selections). In fact, in recent decades, selection aimed at milk to improve production (Miglior et al., 2005) has caused a drastic decline in the quality of the udder conformation of dairy cows. A restriction could also be implemented on traits that have a low or not calculable economic value but are related to characteristics that are typical of the breed or that make the breed adapted to the territory in which it is reared (Krupová et al., 2016). This scenario involves traits such as feed efficiency (Fuerst-Waltl et al., 2016) or important morphological traits (Mancin et al., 2021). Because these traits could be lost during the selection process for productive traits such as MY, a solution consists of guaranteeing at least a non-negative genetic progress by applying a restriction while increasing the production for the most economically important traits.
The genetic gain restriction could also be applied to traits whose positive increase corresponds to the detriment of some functional characteristics, such as traits like SCS, whose positive variation means a loss in udder health. A restriction to zero of this trait has been adopted to prevent positive mammary health issues, as in Alpine Grey (Mancin et al., 2021) and Rendena cattle (Sartori et al., 2018).
The restriction on the selection index could also be a solution for productive traits with lesser economic importance than others but showing negative genetic correlations with the main ones. This situation is likely to occur in some dual-purpose breeds, in which the 2 aptitudes, milk and beef, show negative genetic correlations, and a much greater economic weight is assigned to the first aptitude. Under these circumstances, the genetic trend of the other aptitude may be negative, and restriction to zero could be a valuable solution to prevent a negative variation. This situation is the case for muscularity in the practical example reported above, which shows a negative genetic correlation (around −0.4) with milk yield traits, as observed in many studies on dual-purpose breeds (Sartori et al., 2018;Mancin et al., 2021). A restriction to the genetic gain of MUSC has been applied to obtain the greatest positive increase as possible for milk without a detriment in muscularity, as also proposed in Mancin et al. (2021).
According to Wolfová et al. (2001), it should be an uncorrected prior assumption to consider some traits, such as MUSC and SCS, as restricted traits because they have their own specific economic value. However, in local breeds, no previous studies have ever been done about the economic assessment of these target traits. According to Krupová et al. (2016), it could therefore be considered a preliminary process to establish a suitable selection index satisfying the needs of any breed associations.
In conclusion, after presenting the theory behind the univariate and multivariate selection indices and the use of restriction for some traits within a selection index, this study focused on the problems of accounting for unequal individual information when restricting target traits. A new approach for dealing with this issue was offered. A simulation was also provided as a supporting document (Supplemental File S1). Moreover, this study showed a practical application using real data of a local breed, the Alpine Grey cattle, with possible implementation in situations where negative correlations occur among target selected traits. Applying restriction allows simultaneous improvement and non-deterioration of all target traits, which is especially beneficial when many traits need to be accounted for selection, as is common today in many dairy, dualpurpose, and beef breeds. Therefore, this study offered a predictive method for computing economic weights accounting for a restriction to zero of the genetic gain for traits of interest, useful for reasoning around the consequences of selection when new traits should be included in a selection index, or when different weights should be applied to traits that are already included in it. Moreover, this study provided a new method to account for unequal accuracies of individual data when restricting traits, which is useful for implementation in real-life scenarios.