can construct a full name from first_name and last_name: G
Person has an optional middle name: G
Person returns a full name including, if present, a middle name: G