Use new AbstractController pattern