refactor blending state