Please lets not use names like f2 except for very rare conditions. Calling it e.g. retypedFrom or newFrom or even from2 makes the code more readable. Otherwise you always have to scan back where f2 comes from.