added more code to shader compiler and split into seperate files