support emissive and refactoring