diff --git a/lib/xmet/raob.py b/lib/xmet/raob.py
index 3108a71..1f83d87 100644
--- a/lib/xmet/raob.py
+++ b/lib/xmet/raob.py
@@ -13,27 +13,11 @@ CHUNK_STRIP_CHARS = "\x01\x03\x0a\x20"
 class RAOBReaderException(Exception):
     ...
 
-class RAOBSample():
-    __slots__ = (
-        'surface', 'height', 'pressure', 'temp', 'dewpoint',
-        'wind_dir', 'wind_speed'
-    )
-
-    def __init__(self):
-        self.surface:    bool  = False
-        self.height:     float = None
-        self.pressure:   float = None
-        self.temp:       float = None
-        self.dewpoint:   float = None
-        self.wind_dir:   float = None
-        self.wind_speed: float = None
-
 class RAOBSounding():
     def __init__(self):
-        self.timestamp: datetime.datetime  = None
-        self.station:   int                = None
-        self.cur:       RAOBSample         = None
-        self.samples:   list[RAOBSample]   = list()
+        self.timestamp: datetime.datetime    = None
+        self.station:   int                  = None
+        self.samples:   list[SoundingSample] = list()
 
 class RAOBObs():
     def __init__(self, kind: str):
@@ -202,11 +186,11 @@ class RAOBObs():
                 'pressure': float(pressure)
             }
 
-    def parse_sample_tokens(self, tokens: list[str]) -> RAOBSample:
-        sample = RAOBSample()
+    def parse_sample_tokens(self, tokens: list[str]) -> SoundingSample:
+        sample = SoundingSample()
 
         if tokens[0][0:2] == '99':
-            sample.surface = True
+            sample.elapsed = 0
             hp = self.parse_surface_pressure(tokens[0])
         else:
             hp = self.parse_height_pressure(tokens[0])
@@ -219,11 +203,15 @@ class RAOBObs():
 
         sample.height     = hp['height']
         sample.pressure   = hp['pressure']
-        sample.temp       = td['temp']     if td is not None else None
-        sample.dewpoint   = td['dewpoint'] if td is not None else None
+        sample.temp       = td['temp']     if td   is not None else None
+        sample.dewpoint   = td['dewpoint'] if td   is not None else None
         sample.wind_dir   = wind['dir']    if wind is not None else None
         sample.wind_speed = wind['speed']  if wind is not None else None
 
+        sample.pressure_qa = ' '
+        sample.height_qa   = ' '
+        sample.temp_qa     = ' '
+
         return sample
 
     def parse_ttaa(self) -> RAOBSounding:
@@ -311,7 +299,6 @@ class RAOBReader():
     def __init__(self, fh: io.TextIOBase):
         self.fh        = fh
         self.soundings = dict()
-        self.current   = Sounding()
 
     def parse_chunk(self, text: str) -> RAOBChunk:
         meta = {