ShaderCompUnit was poorly done, a mix of a list of things and hard coding to a single thing. This makes it all a true list. File data was greatly simplified to be a single string, no longer supporting breaking a single file into multiple strings.