my first attempt at building an event stream framework in node