move the effect related stuff out