diff --git a/tangostationcontrol/tangostationcontrol/common/lofar_version.py b/tangostationcontrol/tangostationcontrol/common/lofar_version.py
index be923cf9f1958555e4a397bfa5bffa33daaf3580..0a70002ed6de1fffdfc6059c6cfe2fff0beb630c 100644
--- a/tangostationcontrol/tangostationcontrol/common/lofar_version.py
+++ b/tangostationcontrol/tangostationcontrol/common/lofar_version.py
@@ -72,14 +72,10 @@ def get_version(repo: git.Repo = None) -> str:
     commit = repo.commit()
     filtered_tags = [tag.name for tag in repo.tags if reg.search(tag.name)]
     # Order tags from newest to oldest
-    tags = {tag.commit: tag for tag in reversed(repo.tags) if tag.name in filtered_tags}
+    tags = _order_tags(repo, filtered_tags)
 
     # Find closest tag for commit
-    closest_tag = type('',(object,),{"name": 'v0.0.0'})()
-    for item in commit.iter_items(repo, commit):
-        if item.type == 'commit' and item in tags:
-            closest_tag = tags[item]
-            break
+    closest_tag = _find_closest_tag(commit, repo, tags)
 
     if commit in tags:
         # a tag = production ready
@@ -94,6 +90,19 @@ def get_version(repo: git.Repo = None) -> str:
 
     return "{}{}".format(commit_str, ".dirty" if repo.is_dirty() else "")
 
+def _order_tags(repo, filtered_tags):
+    """ Helper function to order tags from newest to oldest """
+    return {tag.commit: tag for tag in reversed(repo.tags) if tag.name in filtered_tags}
+
+def _find_closest_tag(commit, repo, tags):
+    """ Helper function to find closest tag for commit """
+    closest_tag = type('',(object,),{"name": 'v0.0.0'})()
+    for item in commit.iter_items(repo, commit):
+        if item.type == 'commit' and item in tags:
+            closest_tag = tags[item]
+            break
+    return closest_tag
+
 # at least cache the current repo version immediately
 try:
     _ = get_version()