updated shader system