Enhancements can be categorized as domain-specific, or domain-independent. Domainindependent alterations to MCTS should improve the performance of the algorithm regardless of the application. Examples include parallelization, All Moves As First, a bi-directional variant, and RAVE, among others. In contrast, domain-specific enhancements are tailored to the application of the algorithm, and thus often have more noticeable effects. One domain-specific enhancement is a value network, which stores information about certain positions or states and a respective score. Another is heuristic-based action pruning, which is often used to reduce search spaces by hard-coding rules to eliminate certain actions.