refactor to let transport return a simple event buffer instead of raw data