Made User fields private and added accessors. Added generic validating widget.