add clientId field to Stream and Event classes + some refactor/Javadoc