# Cookbook Brush mostly consists of these components: - A dataset class that handles multiple types of data - A program class that defines composable operations over data - A search space that samples the components of programs - Tweaking operators to change programs randomly - Optimizers to learn optimal splitting thresholds and optimal parameter values within programs. ```{toctree} data search_space working_with_programs json saving_loading_populations archive deap ```