added shadow, enable caching