realize dynamic addition of widgets