added null guards to Name constructors
changed FullName implementation to Property rather than method