shader module refactoring