diff --git a/robotframework-onap/ONAPLibrary/HTTPKeywords.py b/robotframework-onap/ONAPLibrary/HTTPKeywords.py
new file mode 100644
index 0000000..40f9998
--- /dev/null
+++ b/robotframework-onap/ONAPLibrary/HTTPKeywords.py
@@ -0,0 +1,18 @@
+from six.moves import urllib
+from robot.api.deco import keyword
+
+
+class HTTPKeywords(object):
+    """HTTPKeywords is common resource for simple http helper keywords."""
+    def __init__(self):
+        super(HTTPKeywords, self).__init__()
+
+    @keyword
+    def url_encode_string(self, barestring):
+        """URL Encode String takes in a string and converts it into fully 'percent-encoded' string"""
+        return urllib.parse.quote(barestring)
+
+    @keyword
+    def url_parse(self, url):
+        """  Get pieces of the URL """
+        return urllib.parse.urlparse(url)
diff --git a/robotframework-onap/ONAPLibrary/Utilities.py b/robotframework-onap/ONAPLibrary/Utilities.py
index 9f1e0c0..8c1f355 100644
--- a/robotframework-onap/ONAPLibrary/Utilities.py
+++ b/robotframework-onap/ONAPLibrary/Utilities.py
@@ -16,6 +16,7 @@
 from ONAPLibrary.DNSKeywords import DNSKeywords
 from ONAPLibrary.SocketKeywords import SocketKeywords
 from ONAPLibrary.UUIDKeywords import UUIDKeywords
+from ONAPLibrary.HTTPKeywords import HTTPKeywords
 
 
 class Utilities(HybridCore):
@@ -25,6 +26,7 @@
         self.keyword_implementors = [
             DNSKeywords(),
             SocketKeywords(),
-            UUIDKeywords()
+            UUIDKeywords(),
+            HTTPKeywords()
         ]
         HybridCore.__init__(self, self.keyword_implementors)
diff --git a/robotframework-onap/eteutils/HTTPUtils.py b/robotframework-onap/eteutils/HTTPUtils.py
deleted file mode 100644
index f5c8fe4..0000000
--- a/robotframework-onap/eteutils/HTTPUtils.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from six.moves.urllib.parse import urlparse
-from six.moves import urllib
-
-import urllib3
-
-
-class HTTPUtils:
-    """HTTPUtils is common resource for simple http helper keywords."""
-
-    def url_encode_string(self, barestring):
-        """URL Encode String takes in a string and converts it into fully 'percent-encoded' string"""
-        return urllib.parse.quote(barestring)
-
-    def disable_warnings(self):
-        """  Disable all warnings when creating sessions """
-        urllib3.disable_warnings()
-
-    def url_parse(self, url):
-        """  Get pieces of the URL """
-        return urlparse(url)
diff --git a/robotframework-onap/eteutils/OSUtils.py b/robotframework-onap/eteutils/OSUtils.py
deleted file mode 100644
index 78968f0..0000000
--- a/robotframework-onap/eteutils/OSUtils.py
+++ /dev/null
@@ -1,14 +0,0 @@
-from sys import platform
-
-class OSUtils:
-    """ Utilities useful for constructing OpenStack HEAT requests """
-
-    def get_normalized_os(self):
-        os = platform
-        if platform == "linux" or platform == "linux2":
-            os = 'linux64'
-        elif platform == "darwin":
-            os = 'mac64'
-        elif platform == "win32":
-            os = platform
-        return os
