Rewrite to allow multiple screens, screen options, non-string widget types.