Updates tests and widget code

Cleans up some of the widget code based on live use. The tests are based
on going back through the call chain to identify how the value argument
is passed.