smarter logic when to use shadows