Sometimes having to create controller, registering it in widget and then registering listener in controller looks like overengineering. I\'m trying to understand why Flutter