add a small event system