Alternatively, there would be less copy paste if AbstractControl extended TextInput which extends NativeControl which extends Component (instead of AbstractControl extending Component directly). It depends on if the AbstractControl should really have native dom like features or not?