widget and many improvements