moved AbstractController to proper place