test code working
diff --git a/wally/result_classes.py b/wally/result_classes.py
index 9b488b7..19925f2 100644
--- a/wally/result_classes.py
+++ b/wally/result_classes.py
@@ -1,19 +1,30 @@
-from typing import Union, Dict, List, Any, Tuple
-
-# Stores test result for integral value, which
-# can be expressed as a single value for given time period,
-# like IO, BW, etc.
-TimeSeriesIntegral = List[float]
+import array
+from typing import Dict, List, Any, Tuple, Optional
 
 
-# Stores test result for value, which
-# requires distribution to be stored for any time period,
-# like latency.
-TimeSeriesHistogram = List[List[float]]
+class TimeSerie:
+    name = None  # type: str
+    start_at = None  # type: int
+    step = None  # type: int
+    data = None  # type: List[int]
+    second_axis_size = None  # type: int
+    raw = None  # type: Optional[bytes]
 
+    def __init__(self, name: str, raw: Optional[bytes], second_axis_size: int,
+                 start_at: int, step: int, data: array.array) -> None:
+        self.name = name
+        self.start_at = start_at
+        self.step = step
+        self.second_axis_size = second_axis_size
+        self.data = data # type: ignore
+        self.raw = raw
 
-TimeSeries = Union[TimeSeriesIntegral, TimeSeriesHistogram]
-RawTestResults = Dict[str, TimeSeries]
+    def meta(self) -> Dict[str, Any]:
+        return {
+            "start_at": self.start_at,
+            "step": self.step,
+            "second_axis_size": self.second_axis_size
+        }
 
 
 class SensorInfo:
@@ -23,7 +34,7 @@
     sensor_name = None  # type: str
     begin_time = None  # type: int
     end_time = None  # type: int
-    data = None  # type: TimeSeries
+    data = None  # type: List[int]
 
     def __init__(self, node_id: str, source_id: str, sensor_name: str) -> None:
         self.node_id = node_id
@@ -43,12 +54,30 @@
     node_ids = None # type: List[str]
 
 
+class NodeTestResults:
+    name = None  # type: str
+    node_id = None  # type: str
+    summary = None  # type: str
+
+    load_start_at = None  # type: int
+    load_stop_at = None  # type: int
+
+    series = None  # type: Dict[str, TimeSerie]
+
+    def __init__(self, name: str, node_id: str, summary: str) -> None:
+        self.name = name
+        self.node_id = node_id
+        self.summary = summary
+        self.series = {}
+        self.extra_logs = {}  # type: Dict[str, bytes]
+
+
 class FullTestResult:
     test_info = None  # type: TestInfo
 
     # TODO(koder): array.array or numpy.array?
     # {(node_id, perf_metrics_name): values}
-    performance_data = None  # type: Dict[Tuple[str, str], TimeSeries]
+    performance_data = None  # type: Dict[Tuple[str, str], List[int]]
 
     # {(node_id, perf_metrics_name): values}
     sensors_data = None  # type: Dict[Tuple[str, str, str], SensorInfo]