Refactored to use Modal, Overlay, Showable