Restructured base plugin

- Made settings_controller and messages_controller optional.