overlay is now directly responsible for hiding/showing target element