v0.1.x: add protected event emitting interface