constraints added for MiddleName when present, tests also added