diff --git a/pyproject.toml b/pyproject.toml
index 581818d0c063e493309d501feb66a12f3d65c520..24de4489d1b3f7dd55643965a5a1b6b8167e6f32 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "MaggotUBA-adapter"
-version = "0.2.0"
+version = "0.3.0"
 description = "Interface between MaggotUBA and the Nyx tagging UI"
 authors = ["François Laurent"]
 license = "MIT"
diff --git a/src/maggotuba/models/predict_model.py b/src/maggotuba/models/predict_model.py
index a6f0742ebb6d215c9a9ba99096171d10e6d0937e..589aacf3bb7b41769b0fca1ad88a6a56b697fb79 100644
--- a/src/maggotuba/models/predict_model.py
+++ b/src/maggotuba/models/predict_model.py
@@ -1,5 +1,6 @@
 from taggingbackends.data.trxmat import TrxMat
 from taggingbackends.data.chore import load_spine
+import taggingbackends.data.fimtrack as fimtrack
 from taggingbackends.data.labels import Labels
 from taggingbackends.features.skeleton import get_5point_spines
 from randomforest import RandomForest
@@ -46,13 +47,17 @@ def predict_model(backend):
             if run == "spine":
                 run, data = next(iter(data.items()))
             t = t[run]
+        elif file.name.endswith(".csv"):
+            print("assuming 30 fps")
+            t, data = fimtrack.read_spines(file, fps=30)
+            run = "NA"
         else:
             # TODO: support more file formats
             continue
         # downsample the skeleton
         if isinstance(data, dict):
             for larva in data:
-                data[larva] = np.vstack([get_5point_spines(spine) for spine in data[larva]])
+                data[larva] = get_5point_spines(data[larva])
         else:
             data = get_5point_spines(data)
         # load the model