Remove AbstractController inheritance, implement Listener Interface instead