diff --git a/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java b/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java
index f94a158e567142a2a430789ea6fcd7ed5a83bf32..4264a752a1909260698f7810d06b4143843aadc1 100644
--- a/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java
+++ b/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java
@@ -21,7 +21,9 @@ import explorviz.live_trace_processing.record.event.constructor.BeforeConstructo
 import explorviz.live_trace_processing.record.event.normal.AfterFailedOperationEventRecord;
 import explorviz.live_trace_processing.record.event.normal.AfterOperationEventRecord;
 import explorviz.live_trace_processing.record.event.normal.BeforeOperationEventRecord;
-import explorviz.live_trace_processing.record.event.remote.RemoteCallBridgeRecord;
+import explorviz.live_trace_processing.record.event.remote.ReceivedRemoteCallRecord;
+import explorviz.live_trace_processing.record.event.remote.SentRemoteCallRecord;
+import explorviz.live_trace_processing.record.event.remote.UnknownReceivedRemoteCallRecord;
 import explorviz.live_trace_processing.record.event.statics.AfterFailedStaticOperationEventRecord;
 import explorviz.live_trace_processing.record.event.statics.AfterStaticOperationEventRecord;
 import explorviz.live_trace_processing.record.event.statics.BeforeStaticOperationEventRecord;
@@ -141,6 +143,8 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
 
 						stringRegistry.putStringRecord(mapId, new String(stringByteArray));
 
+						System.out.println(new String(stringByteArray));
+
 						checkWaitingMessages();
 					} else {
 						buffer.position(buffer.position() - 9);
@@ -220,9 +224,9 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
 					buffer.compact();
 					return;
 				}
-				case RemoteCallBridgeRecord.CLAZZ_ID: {
-					if (buffer.remaining() >= RemoteCallBridgeRecord.COMPRESSED_BYTE_LENGTH) {
-						readInRemoteCallBridgeEvent(buffer);
+				case ReceivedRemoteCallRecord.CLAZZ_ID: {
+					if (buffer.remaining() >= ReceivedRemoteCallRecord.COMPRESSED_BYTE_LENGTH) {
+						readInReceivedRemoteCallEvent(buffer);
 						break;
 					}
 					buffer.position(buffer.position() - 1);
@@ -256,6 +260,24 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
 					buffer.compact();
 					return;
 				}
+				case SentRemoteCallRecord.CLAZZ_ID: {
+					if (buffer.remaining() >= SentRemoteCallRecord.COMPRESSED_BYTE_LENGTH) {
+						readInSentRemoteCallEvent(buffer);
+						break;
+					}
+					buffer.position(buffer.position() - 1);
+					buffer.compact();
+					return;
+				}
+				case UnknownReceivedRemoteCallRecord.CLAZZ_ID: {
+					if (buffer.remaining() >= UnknownReceivedRemoteCallRecord.COMPRESSED_BYTE_LENGTH) {
+						readInUnknownReceivedRemoteCallEvent(buffer);
+						break;
+					}
+					buffer.position(buffer.position() - 1);
+					buffer.compact();
+					return;
+				}
 				default: {
 					System.out.println("unknown class id " + clazzId + " at offset "
 							+ (buffer.position() - 1));
@@ -375,7 +397,7 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
 				hostApplicationMetadata));
 	}
 
-	private final void readInRemoteCallBridgeEvent(final ByteBuffer buffer) {
+	private final void readInReceivedRemoteCallEvent(final ByteBuffer buffer) {
 		final int callerHost = buffer.getInt();
 		final int callerApplication = buffer.getInt();
 		final long callerTraceId = buffer.getLong();
@@ -386,13 +408,13 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
 		final int orderIndex = buffer.getInt();
 
 		try {
-			putInRingBuffer(new RemoteCallBridgeRecord(timestamp,
+			putInRingBuffer(new ReceivedRemoteCallRecord(timestamp,
 					stringRegistry.getStringFromId(callerHost),
 					stringRegistry.getStringFromId(callerApplication), callerTraceId,
 					callerOrderIndex, traceId, orderIndex, hostApplicationMetadata));
 		} catch (final IdNotAvailableException e) {
 			putInWaitingMessages(buffer,
-					RemoteCallBridgeRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID);
+					ReceivedRemoteCallRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID);
 		}
 	}
 
@@ -439,6 +461,40 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
 				hostApplicationMetadata));
 	}
 
+	private final void readInSentRemoteCallEvent(final ByteBuffer buffer) {
+		final long timestamp = buffer.getLong();
+		final long traceId = buffer.getLong();
+		final int orderIndex = buffer.getInt();
+		final int destinationId = 0;
+
+		try {
+			putInRingBuffer(new SentRemoteCallRecord(timestamp,
+					stringRegistry.getStringFromId(destinationId), traceId, orderIndex,
+					hostApplicationMetadata));
+		} catch (final IdNotAvailableException e) {
+			putInWaitingMessages(buffer, SentRemoteCallRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID);
+		}
+	}
+
+	private final void readInUnknownReceivedRemoteCallEvent(final ByteBuffer buffer) {
+		final long timestamp = buffer.getLong();
+		final long traceId = buffer.getLong();
+		final int orderIndex = buffer.getInt();
+
+		final int senderId = buffer.getInt();
+		final int destionationId = buffer.getInt();
+
+		try {
+			putInRingBuffer(new UnknownReceivedRemoteCallRecord(timestamp,
+					stringRegistry.getStringFromId(senderId),
+					stringRegistry.getStringFromId(destionationId), traceId, orderIndex,
+					hostApplicationMetadata));
+		} catch (final IdNotAvailableException e) {
+			putInWaitingMessages(buffer,
+					UnknownReceivedRemoteCallRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID);
+		}
+	}
+
 	private final void putInWaitingMessages(final ByteBuffer buffer, final int length) {
 		final byte[] message = new byte[length];
 		buffer.position(buffer.position() - length);
@@ -478,8 +534,8 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
 				case AfterConstructorEventRecord.CLAZZ_ID:
 					readInAfterConstructorEvent(buffer);
 					break;
-				case RemoteCallBridgeRecord.CLAZZ_ID:
-					readInRemoteCallBridgeEvent(buffer);
+				case ReceivedRemoteCallRecord.CLAZZ_ID:
+					readInReceivedRemoteCallEvent(buffer);
 					break;
 				case BeforeStaticOperationEventRecord.CLAZZ_ID:
 					readInBeforeStaticOperationEvent(buffer);
@@ -490,6 +546,12 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
 				case AfterStaticOperationEventRecord.CLAZZ_ID:
 					readInAfterStaticOperationEvent(buffer);
 					break;
+				case SentRemoteCallRecord.CLAZZ_ID:
+					readInSentRemoteCallEvent(buffer);
+					break;
+				case UnknownReceivedRemoteCallRecord.CLAZZ_ID:
+					readInUnknownReceivedRemoteCallEvent(buffer);
+					break;
 				default:
 					break;
 			}