ubershaders -- not complete, but now working