Issue #67: put widgets into their own package