use bridged
re-implement target completed