Fix abstraction leakage with the controller