Splitting of BaseCtrl in reusable services. Untested.