properly separate the shaders