> 1) Events are always created on heap 2) Events memory is managed only by ref-counting smart pointers (how it should be)
For 1) as the destructor is private we can't create on stack already; for 2) yes, this's better, otherwise memory leak maybe possible.