Emitters and subtype use dumbfire, refactor again the process.