move IEventEmitter/IReadable/IWritable interfaces into corresponding modules to reduce visual noise and somewhat mark them as "internal"