Added some initial files.
Various updates including new toString() method and validation.