ooh, events can check for item visibility and respond based on that, with no new special casing or changes to event