Better appframework controllers

implement most of the basic stuff that was suggested in #8290