adding StreamEvent and InnerStreamEvent