parse and constrain boilerplated done; todo parse source and get shader type