Index: trunk/src/com/kitfox/svg/SVGElement.java
===================================================================
--- trunk/src/com/kitfox/svg/SVGElement.java	(revision 15901)
+++ trunk/src/com/kitfox/svg/SVGElement.java	(revision 15904)
@@ -89,10 +89,10 @@
      * Styles defined for this elemnt via the <b>style</b> attribute.
      */
-    protected final HashMap<String, StyleAttribute> inlineStyles = new HashMap<>();
+    protected final HashMap<String, String> inlineStyles = new HashMap<>();
     /**
      * Presentation attributes set for this element. Ie, any attribute other
      * than the <b>style</b> attribute.
      */
-    protected final HashMap<String, StyleAttribute> presAttribs = new HashMap<>();
+    protected final HashMap<String, String> presAttributes = new HashMap<>();
     /**
      * A list of presentation attributes to not include in the presentation
@@ -273,5 +273,5 @@
         if (style != null)
         {
-            HashMap<?, ?> map = XMLParseUtil.parseStyle(style, inlineStyles);
+            XMLParseUtil.parseStyle(style, inlineStyles);
         }
 
@@ -299,5 +299,5 @@
             String value = attrs.getValue(i);
 
-            presAttribs.put(name, new StyleAttribute(name, value == null ? null : value.intern()));
+            presAttributes.put(name, value == null ? null : value.intern());
         }
     }
@@ -316,5 +316,5 @@
     public Set<String> getPresentationAttributes()
     {
-        return presAttribs.keySet();
+        return presAttributes.keySet();
     }
 
@@ -486,7 +486,7 @@
 
         //Check for local inline styles
-        StyleAttribute styAttr = inlineStyles.get(styName);
-
-        attrib.setStringValue(styAttr == null ? "" : styAttr.getStringValue());
+        String styAttr = inlineStyles.get(styName);
+
+        attrib.setStringValue(styAttr == null ? "" : styAttr);
 
         //Return if we've found a non animated style
@@ -498,7 +498,7 @@
 
         //Check for presentation attribute
-        StyleAttribute presAttr = presAttribs.get(styName);
-
-        attrib.setStringValue(presAttr == null ? "" : presAttr.getStringValue());
+        String presAttr = presAttributes.get(styName);
+
+        attrib.setStringValue(presAttr == null ? "" : presAttr);
 
         //Return if we've found a presentation attribute instead
@@ -546,5 +546,6 @@
     {
         //Check for local inline styles
-        return inlineStyles.get(styName);
+        final String value = inlineStyles.get(styName);
+        return value != null ? new StyleAttribute(styName, value) : null;
     }
 
@@ -561,16 +562,11 @@
 
         //Make sure we have a coresponding presentation attribute
-        StyleAttribute presAttr = presAttribs.get(presName);
+        String presAttr = presAttributes.get(presName);
 
         //Copy presentation value directly
-        attrib.setStringValue(presAttr == null ? "" : presAttr.getStringValue());
+        attrib.setStringValue(presAttr == null ? "" : presAttr);
 
         //Return if we found presentation attribute
-        if (presAttr != null)
-        {
-            return true;
-        }
-
-        return false;
+        return presAttr != null;
     }
 
@@ -584,5 +580,6 @@
     {
         //Check for local inline styles
-        return presAttribs.get(styName);
+        final String value = presAttributes.get(styName);
+        return value != null ? new StyleAttribute(styName, value) : null;
     }
 
Index: trunk/src/com/kitfox/svg/xml/XMLParseUtil.java
===================================================================
--- trunk/src/com/kitfox/svg/xml/XMLParseUtil.java	(revision 15901)
+++ trunk/src/com/kitfox/svg/xml/XMLParseUtil.java	(revision 15904)
@@ -302,29 +302,17 @@
      * @param map - A map to which these styles will be added
      */
-    public static HashMap<String, StyleAttribute> parseStyle(String styleString, HashMap<String, StyleAttribute> map) {
+    public static void parseStyle(String styleString, HashMap<String, String> map) {
         final Pattern patSemi = Pattern.compile(";");
 
-        String[] styles = patSemi.split(styleString);
-
-        for (int i = 0; i < styles.length; i++)
-        {
-            if (styles[i].length() == 0)
-            {
-                continue;
-            }
-
-            int colon = styles[i].indexOf(':');
-            if (colon == -1)
-            {
-                continue;
-            }
-
-            String key = styles[i].substring(0, colon).trim().intern();
-            String value = quoteMatch.reset(styles[i].substring(colon + 1).trim()).replaceAll("").intern();
-
-            map.put(key, new StyleAttribute(key, value));
-        }
-
-        return map;
+        // com.kitfox.svg.xml.StyleAttribute	58,595 (3.6%)	1,992,230 B (1.4%)	n/a
+        patSemi.splitAsStream(styleString)
+                .filter(style -> !style.isEmpty())
+                .forEach(style  -> {
+                    int colon = style.indexOf(':');
+                    if (colon == -1) return;
+                    String key = style.substring(0, colon).trim().intern();
+                    String value = quoteMatch.reset(style.substring(colon + 1).trim()).replaceAll("").intern();
+                    map.put(key, value);
+                });
     }
 }
