Other important concepts that emerged in the early days of LCS research included (1) the formalization of a "bucket brigade algorithm" (BBA) for credit assignment/learning, (2) selection of parent rules from a common 'environmental niche' (i.e. the "match set" rather than from the whole "population" [P, (3) "covering", first introduced as a "create" operator, (4) the formalization of an "action set" name=":5" /> (5) a simplified algorithm architecture, (6) "strength-based fitness", (7) consideration of single-step, or supervised learning problems and the introduction of the "correct set" [C, (8) "accuracy-based fitness" (9) the combination of fuzzy logic with LCS (which later spawned a lineage of "fuzzy LCS algorithms"), (10) encouraging "long action chains" and "default hierarchies" for improving performance on multi-step problems, (11) examining latent learning (which later inspired a new branch of "anticipatory classifier systems" (ACS)), and (12) the introduction of the first Q-learning-like credit assignment technique. While not all of these concepts are applied in modern LCS algorithms, each were landmarks in the development of the LCS paradigm.