separate into separate files, added channel, room, events