we validate everything when setting it, so this function always returns either a valid profile, or NULL.