generalized everything back to the base controller