add widgetInterface
remove abstractcontroller (useless)