add primitive injection support