add typed event