Add init method to create shader from string rather than file