added shader uniform handling