try abstract base controller