imeplemented TargetAction & Delegate