Add get method to shader and refactor