diff --git a/jass/util.py b/jass/util.py
index 0061ca0757513f475eb3816db42c226027b89d0b..4e0189d061b34135f812df61a1365fa1bb6d666c 100644
--- a/jass/util.py
+++ b/jass/util.py
@@ -1,11 +1,11 @@
-from typing import GenericMeta
-from datetime import datetime, date
-from six import integer_types, iteritems
+import datetime
+
+import six
+import typing
 
 
 def _deserialize(data, klass):
-    """
-    Deserializes dict, list, str into an object.
+    """Deserializes dict, list, str into an object.
 
     :param data: dict, list or str.
     :param klass: class literal, or string of class name.
@@ -15,15 +15,15 @@ def _deserialize(data, klass):
     if data is None:
         return None
 
-    if klass in integer_types or klass in (float, str, bool):
+    if klass in six.integer_types or klass in (float, str, bool):
         return _deserialize_primitive(data, klass)
     elif klass == object:
         return _deserialize_object(data)
-    elif klass == date:
+    elif klass == datetime.date:
         return deserialize_date(data)
-    elif klass == datetime:
+    elif klass == datetime.datetime:
         return deserialize_datetime(data)
-    elif type(klass) == GenericMeta:
+    elif type(klass) == typing.GenericMeta:
         if klass.__extra__ == list:
             return _deserialize_list(data, klass.__args__[0])
         if klass.__extra__ == dict:
@@ -33,8 +33,7 @@ def _deserialize(data, klass):
 
 
 def _deserialize_primitive(data, klass):
-    """
-    Deserializes to primitive type.
+    """Deserializes to primitive type.
 
     :param data: data to deserialize.
     :param klass: class literal.
@@ -45,15 +44,14 @@ def _deserialize_primitive(data, klass):
     try:
         value = klass(data)
     except UnicodeEncodeError:
-        value = unicode(data)
+        value = six.u(data)
     except TypeError:
         value = data
     return value
 
 
 def _deserialize_object(value):
-    """
-    Return a original value.
+    """Return a original value.
 
     :return: object.
     """
@@ -61,8 +59,7 @@ def _deserialize_object(value):
 
 
 def deserialize_date(string):
-    """
-    Deserializes string to date.
+    """Deserializes string to date.
 
     :param string: str.
     :type string: str
@@ -71,15 +68,13 @@ def deserialize_date(string):
     """
     try:
         from dateutil.parser import parse
-
         return parse(string).date()
     except ImportError:
         return string
 
 
 def deserialize_datetime(string):
-    """
-    Deserializes string to datetime.
+    """Deserializes string to datetime.
 
     The string should be in iso8601 datetime format.
 
@@ -90,15 +85,13 @@ def deserialize_datetime(string):
     """
     try:
         from dateutil.parser import parse
-
         return parse(string)
     except ImportError:
         return string
 
 
 def deserialize_model(data, klass):
-    """
-    Deserializes list or dict to model.
+    """Deserializes list or dict to model.
 
     :param data: dict, list.
     :type data: dict | list
@@ -110,12 +103,10 @@ def deserialize_model(data, klass):
     if not instance.swagger_types:
         return data
 
-    for attr, attr_type in iteritems(instance.swagger_types):
-        if (
-            data is not None
-            and instance.attribute_map[attr] in data
-            and isinstance(data, (list, dict))
-        ):
+    for attr, attr_type in six.iteritems(instance.swagger_types):
+        if data is not None \
+                and instance.attribute_map[attr] in data \
+                and isinstance(data, (list, dict)):
             value = data[instance.attribute_map[attr]]
             setattr(instance, attr, _deserialize(value, attr_type))
 
@@ -123,8 +114,7 @@ def deserialize_model(data, klass):
 
 
 def _deserialize_list(data, boxed_type):
-    """
-    Deserializes a list and its elements.
+    """Deserializes a list and its elements.
 
     :param data: list to deserialize.
     :type data: list
@@ -133,12 +123,12 @@ def _deserialize_list(data, boxed_type):
     :return: deserialized list.
     :rtype: list
     """
-    return [_deserialize(sub_data, boxed_type) for sub_data in data]
+    return [_deserialize(sub_data, boxed_type)
+            for sub_data in data]
 
 
 def _deserialize_dict(data, boxed_type):
-    """
-    Deserializes a dict and its elements.
+    """Deserializes a dict and its elements.
 
     :param data: dict to deserialize.
     :type data: dict
@@ -147,4 +137,5 @@ def _deserialize_dict(data, boxed_type):
     :return: deserialized dict.
     :rtype: dict
     """
-    return {k: _deserialize(v, boxed_type) for k, v in iteritems(data)}
+    return {k: _deserialize(v, boxed_type)
+            for k, v in six.iteritems(data)}
\ No newline at end of file