no dupes, handle more events, shorter output