added shader cache
added convenience static functions to some components