support for totally custom shade objects