outputs must match exactly