diff --git a/src/main/java/edu/umd/dawn/common/services/UserAgentService.java b/src/main/java/edu/umd/dawn/common/services/UserAgentService.java
index f0984087208d8f9d3c4b381568e85d341fecc6ec..65c950f4b56146ad96c17ca351b9ab5aa3911820 100644
--- a/src/main/java/edu/umd/dawn/common/services/UserAgentService.java
+++ b/src/main/java/edu/umd/dawn/common/services/UserAgentService.java
@@ -7,6 +7,9 @@ import nl.basjes.parse.useragent.UserAgent;
 import nl.basjes.parse.useragent.UserAgentAnalyzer;
 
 import static nl.basjes.parse.useragent.classify.DeviceClass.TABLET;
+
+import java.util.Map;
+
 import static nl.basjes.parse.useragent.classify.DeviceClass.PHONE;;
 
 @Service
@@ -31,12 +34,16 @@ public class UserAgentService {
         return builder;
     }
 
-    public edu.umd.dawn.common.models.UserAgent parse(String userAgenString) {
-        UserAgent ua = uaa.parse(userAgenString);
+    public edu.umd.dawn.common.models.UserAgent parse(Map<String, String> headers) {
+        UserAgent ua = uaa.parse(headers);
 
         UserAgentBuilder builder = edu.umd.dawn.common.models.UserAgent.builder();
         builder = setDeviceType(ua, builder);
         builder.device(ua.get(UserAgent.DEVICE_NAME).getValue());
+        builder.os(ua.get(UserAgent.OPERATING_SYSTEM_NAME).getValue());
+        builder.osVersion(ua.get(UserAgent.OPERATING_SYSTEM_VERSION).getValue());
+        builder.name(ua.get(UserAgent.AGENT_NAME).getValue());
+        builder.version(ua.get(UserAgent.AGENT_VERSION).getValue());
 
 
         return builder.build();