This seems to get off to a bad start. The notion of "First Name" and "Last Name" is highly culturally-specific. Some people have only a single name, which will be upsetting since both "first name" and "last name" are required fields. Some have three or more. Even I have a "first name" which I don't actually go by and usually initialize.
Why do we need to break down names anyway? Just have a single "Name" field and be done with it.