common controller and classes