This had consequences down to the `evaluate` function below.. Is that fine?