<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def build(X_df=None, y_df=None):
 """Build features and target Args: X_df (DataFrame):
 raw variables y_df (DataFrame):
 raw target Returns: dict with keys X_df, features, mapper_X, X, y_df, encoder_y, y """

    if X_df is None:
        X_df, _ = load_data()
    if y_df is None:
        _, y_df = load_data()

    features = get_contrib_features()
    mapper_X = ballet.feature.make_mapper(features)
    X = mapper_X.fit_transform(X_df)

    encoder_y = get_target_encoder()
    y = encoder_y.fit_transform(y_df)

    return {
        'X_df': X_df,
        'features': features,
        'mapper_X': mapper_X,
        'X': X,
        'y_df': y_df,
        'encoder_y': encoder_y,
        'y': y,
    }