shouldnt we change type only if you pass the attribute and its different? why do we always need to put it in the form (and trigger the evaluation of the type change every time).