Refactor effect + add no-effect attribute to specify no effect