added FilteredEvent, interface optimization