Adding abstract controllers and a controller manager