Generalize controllers to abstract one