Refactor shader system