refactor
override TargetObject prop