moves ShaderCode class to own file