diff --git a/errors.py b/errors.py
index 8655752..5d08244 100644
--- a/errors.py
+++ b/errors.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-#
 # Copyright 2018 - The Android Open Source Project
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -15,11 +13,96 @@
 # limitations under the License.
 r"""Custom Exceptions for acloud."""
 
+HTTP_NOT_FOUND_CODE = 404
+
+
+class DriverError(Exception):
+    """Base Android Gce driver exception."""
+
+
+class ConfigError(DriverError):
+    """Error related to config."""
+
+
+class CommandArgError(DriverError):
+    """Error related to command line args."""
+
+
+class GceOperationTimeoutError(DriverError):
+    """Error raised when a GCE operation timedout."""
+
+
+class HttpError(DriverError):
+    """Error related to http requests."""
+
+    def __init__(self, code, message):
+        self.code = code
+        super(HttpError, self).__init__(message)
+
+    @staticmethod
+    def CreateFromHttpError(http_error):
+        """Create from an apiclient.errors.HttpError.
+
+        Parse the error code from apiclient.errors.HttpError
+        and create an instance of HttpError from this module
+        that has the error code.
+
+        Args:
+            http_error: An apiclient.errors.HttpError instance.
+
+        Returns:
+            An HttpError instance from this module.
+        """
+        return HttpError(http_error.resp.status, str(http_error))
+
+
+class ResourceNotFoundError(HttpError):
+    """Error raised when a resource is not found."""
+
+
+class InvalidVirtualDeviceIpError(DriverError):
+    """Invalid virtual device's IP is set.
+
+    Raise this when the virtual device's IP of an AVD instance is invalid.
+    """
+
+
+class HasRetriableRequestsError(DriverError):
+    """Raised when some retriable requests fail in a batch execution."""
+
+
+class AuthenticationError(DriverError):
+    """Raised when authentication fails."""
+
+
+class DeviceBootError(DriverError):
+    """To catch device boot errors."""
+
+
+class NoSubnetwork(DriverError):
+    """When there is no subnetwork for the GCE."""
+
+
+class DeviceConnectionError(DriverError):
+    """To catch device connection errors."""
+
+
+class DeviceBootTimeoutError(DeviceBootError):
+    """Raised when an AVD defice failed to boot within timeout."""
+
 
 class SetupError(Exception):
     """Base Setup cmd exception."""
 
 
+class OSTypeError(SetupError):
+    """Error related to OS type."""
+
+
+class NoGoogleSDKDetected(SetupError):
+    """Can't find the SDK path."""
+
+
 class PackageInstallError(SetupError):
     """Error related to package installation."""
 
diff --git a/internal/lib/android_build_client.py b/internal/lib/android_build_client.py
index 735c0e4..32a1179 100644
--- a/internal/lib/android_build_client.py
+++ b/internal/lib/android_build_client.py
@@ -21,9 +21,8 @@
 
 import apiclient
 
-from acloud import errors as root_errors
+from acloud import errors
 from acloud.internal.lib import base_cloud_client
-from acloud.public import errors
 
 logger = logging.getLogger(__name__)
 
@@ -173,7 +172,7 @@
         build = self.Execute(api)
         if build:
             return str(build.get("builds")[0].get("buildId"))
-        raise root_errors.GetBuildIDError(
+        raise errors.GetBuildIDError(
             "No available good builds for branch: %s target: %s"
             % (build_branch, build_target)
         )
diff --git a/internal/lib/android_build_client_test.py b/internal/lib/android_build_client_test.py
index 5629a68..c60a182 100644
--- a/internal/lib/android_build_client_test.py
+++ b/internal/lib/android_build_client_test.py
@@ -24,9 +24,9 @@
 
 import apiclient
 
+from acloud import errors
 from acloud.internal.lib import android_build_client
 from acloud.internal.lib import driver_test_lib
-from acloud.public import errors
 
 # pylint: disable=protected-access
 class AndroidBuildClientTest(driver_test_lib.BaseDriverTest):
diff --git a/internal/lib/android_compute_client.py b/internal/lib/android_compute_client.py
index 9dde2c8..ebd5481 100755
--- a/internal/lib/android_compute_client.py
+++ b/internal/lib/android_compute_client.py
@@ -37,9 +37,9 @@
 import os
 import uuid
 
+from acloud import errors
 from acloud.internal.lib import gcompute_client
 from acloud.internal.lib import utils
-from acloud.public import errors
 
 logger = logging.getLogger(__name__)
 
@@ -226,7 +226,7 @@
             utils.VerifyRsaPubKey(rsa)
         return rsa
 
-    # pylint: disable=too-many-locals
+    # pylint: disable=too-many-locals,arguments-differ
     def CreateInstance(self,
                        instance,
                        image_name,
diff --git a/internal/lib/android_compute_client_test.py b/internal/lib/android_compute_client_test.py
index cf13020..ff5fd95 100644
--- a/internal/lib/android_compute_client_test.py
+++ b/internal/lib/android_compute_client_test.py
@@ -17,10 +17,10 @@
 import unittest
 import mock
 
+from acloud import errors
 from acloud.internal.lib import android_compute_client
 from acloud.internal.lib import driver_test_lib
 from acloud.internal.lib import gcompute_client
-from acloud.public import errors
 
 
 class AndroidComputeClientTest(driver_test_lib.BaseDriverTest):
diff --git a/internal/lib/auth.py b/internal/lib/auth.py
index 966e72e..819abc8 100644
--- a/internal/lib/auth.py
+++ b/internal/lib/auth.py
@@ -47,7 +47,7 @@
 from oauth2client.contrib import multistore_file
 from oauth2client import tools as oauth2_tools
 
-from acloud.public import errors
+from acloud import errors
 
 logger = logging.getLogger(__name__)
 HOME_FOLDER = os.path.expanduser("~")
diff --git a/internal/lib/base_cloud_client.py b/internal/lib/base_cloud_client.py
index 273e2bd..9f851da 100755
--- a/internal/lib/base_cloud_client.py
+++ b/internal/lib/base_cloud_client.py
@@ -29,8 +29,8 @@
 import httplib2
 from oauth2client import client
 
+from acloud import errors
 from acloud.internal.lib import utils
-from acloud.public import errors
 
 logger = logging.getLogger(__name__)
 
diff --git a/internal/lib/base_cloud_client_test.py b/internal/lib/base_cloud_client_test.py
index 40c1f67..de74cd8 100644
--- a/internal/lib/base_cloud_client_test.py
+++ b/internal/lib/base_cloud_client_test.py
@@ -23,9 +23,9 @@
 
 import apiclient
 
+from acloud import errors
 from acloud.internal.lib import base_cloud_client
 from acloud.internal.lib import driver_test_lib
-from acloud.public import errors
 
 
 class FakeError(Exception):
diff --git a/internal/lib/gcompute_client.py b/internal/lib/gcompute_client.py
index ada5306..1f44de0 100755
--- a/internal/lib/gcompute_client.py
+++ b/internal/lib/gcompute_client.py
@@ -32,9 +32,9 @@
 import logging
 import os
 
+from acloud import errors
 from acloud.internal.lib import base_cloud_client
 from acloud.internal.lib import utils
-from acloud.public import errors
 
 logger = logging.getLogger(__name__)
 
diff --git a/internal/lib/gcompute_client_test.py b/internal/lib/gcompute_client_test.py
index b84cdbd..a34bfa2 100644
--- a/internal/lib/gcompute_client_test.py
+++ b/internal/lib/gcompute_client_test.py
@@ -25,10 +25,10 @@
 # pylint: disable=import-error
 import apiclient.http
 
+from acloud import errors
 from acloud.internal.lib import driver_test_lib
 from acloud.internal.lib import gcompute_client
 from acloud.internal.lib import utils
-from acloud.public import errors
 
 GS_IMAGE_SOURCE_URI = "https://storage.googleapis.com/fake-bucket/fake.tar.gz"
 GS_IMAGE_SOURCE_DISK = (
diff --git a/internal/lib/goldfish_compute_client.py b/internal/lib/goldfish_compute_client.py
index 9697d8e..4377d6d 100644
--- a/internal/lib/goldfish_compute_client.py
+++ b/internal/lib/goldfish_compute_client.py
@@ -42,9 +42,9 @@
 import getpass
 import logging
 
+from acloud import errors
 from acloud.internal.lib import android_compute_client
 from acloud.internal.lib import gcompute_client
-from acloud.public import errors
 
 logger = logging.getLogger(__name__)
 
diff --git a/internal/lib/gstorage_client.py b/internal/lib/gstorage_client.py
index b309903..586b173 100755
--- a/internal/lib/gstorage_client.py
+++ b/internal/lib/gstorage_client.py
@@ -20,9 +20,9 @@
 
 import apiclient
 
+from acloud import errors
 from acloud.internal.lib import base_cloud_client
 from acloud.internal.lib import utils
-from acloud.public import errors
 
 logger = logging.getLogger(__name__)
 
diff --git a/internal/lib/gstorage_client_test.py b/internal/lib/gstorage_client_test.py
index f49802b..e2426e1 100644
--- a/internal/lib/gstorage_client_test.py
+++ b/internal/lib/gstorage_client_test.py
@@ -8,9 +8,9 @@
 
 import apiclient
 
+from acloud import errors
 from acloud.internal.lib import driver_test_lib
 from acloud.internal.lib import gstorage_client
-from acloud.public import errors
 
 
 # pylint: disable=protected-access, no-member
diff --git a/internal/lib/utils.py b/internal/lib/utils.py
index 418d14b..b044d38 100755
--- a/internal/lib/utils.py
+++ b/internal/lib/utils.py
@@ -36,9 +36,8 @@
 import uuid
 import zipfile
 
-from acloud import errors as root_errors
+from acloud import errors
 from acloud.internal import constants
-from acloud.public import errors
 
 logger = logging.getLogger(__name__)
 
@@ -454,7 +453,7 @@
         with zipfile.ZipFile(sourcefile, 'r') as compressor:
             compressor.extractall(dest_path)
     else:
-        raise root_errors.UnsupportedCompressionFileType(
+        raise errors.UnsupportedCompressionFileType(
             "Sorry, we could only support compression file type "
             "for zip or tar.gz.")
 
@@ -764,7 +763,7 @@
     """
     bin_path = find_executable(cmd)
     if not bin_path:
-        raise root_errors.NoExecuteCmd("unable to locate %s" % cmd)
+        raise errors.NoExecuteCmd("unable to locate %s" % cmd)
     command = [bin_path] + args
     logger.debug("Running '%s'", ' '.join(command))
     with open(os.devnull, "w") as dev_null:
diff --git a/internal/lib/utils_test.py b/internal/lib/utils_test.py
index 9225ddd..79c1c6d 100644
--- a/internal/lib/utils_test.py
+++ b/internal/lib/utils_test.py
@@ -27,9 +27,9 @@
 import unittest
 import mock
 
+from acloud import errors
 from acloud.internal.lib import driver_test_lib
 from acloud.internal.lib import utils
-from acloud.public import errors
 
 # Tkinter may not be supported so mock it out.
 try:
diff --git a/public/acloud_kernel/kernel_swapper.py b/public/acloud_kernel/kernel_swapper.py
index 6041b82..1e6abe3 100755
--- a/public/acloud_kernel/kernel_swapper.py
+++ b/public/acloud_kernel/kernel_swapper.py
@@ -19,7 +19,7 @@
 """
 import subprocess
 
-from acloud.public import errors
+from acloud import errors
 from acloud.public import report
 from acloud.internal.lib import android_compute_client
 from acloud.internal.lib import auth
diff --git a/public/acloud_main.py b/public/acloud_main.py
index 264560b..780a61d 100644
--- a/public/acloud_main.py
+++ b/public/acloud_main.py
@@ -59,6 +59,7 @@
 OAUTH2_LOGGER.addHandler(logging.FileHandler("/dev/null"))
 
 # pylint: disable=wrong-import-position
+from acloud import errors
 from acloud.create import create
 from acloud.create import create_args
 from acloud.delete import delete
@@ -72,7 +73,6 @@
 from acloud.public import acloud_common
 from acloud.public import config
 from acloud.public import device_driver
-from acloud.public import errors
 from acloud.public.actions import create_cuttlefish_action
 from acloud.public.actions import create_goldfish_action
 from acloud.setup import setup
diff --git a/public/actions/common_operations.py b/public/actions/common_operations.py
index a5a8518..dbdd3a2 100644
--- a/public/actions/common_operations.py
+++ b/public/actions/common_operations.py
@@ -26,8 +26,8 @@
 import os
 import subprocess
 
+from acloud import errors
 from acloud.public import avd
-from acloud.public import errors
 from acloud.public import report
 from acloud.internal import constants
 from acloud.internal.lib import utils
diff --git a/public/actions/create_goldfish_action.py b/public/actions/create_goldfish_action.py
index b47f52b..8569d0b 100644
--- a/public/actions/create_goldfish_action.py
+++ b/public/actions/create_goldfish_action.py
@@ -21,7 +21,7 @@
 import logging
 import os
 
-from acloud.public import errors
+from acloud import errors
 from acloud.public.actions import common_operations
 from acloud.public.actions import base_device_factory
 from acloud.internal.lib import android_build_client
diff --git a/public/config.py b/public/config.py
index e9d8bcd..c4e7ff2 100755
--- a/public/config.py
+++ b/public/config.py
@@ -49,10 +49,10 @@
 from google.protobuf import text_format
 
 # pylint: disable=no-name-in-module,import-error
+from acloud import errors
 from acloud.internal.proto import internal_config_pb2
 from acloud.internal.proto import user_config_pb2
 from acloud.create import create_args
-from acloud.public import errors
 
 _CONFIG_DATA_PATH = os.path.join(
     os.path.dirname(os.path.abspath(__file__)), "data")
diff --git a/public/config_test.py b/public/config_test.py
index dd4e757..e6cf679 100644
--- a/public/config_test.py
+++ b/public/config_test.py
@@ -21,10 +21,10 @@
 import mock
 
 # pylint: disable=no-name-in-module,import-error
+from acloud import errors
 from acloud.internal.proto import internal_config_pb2
 from acloud.internal.proto import user_config_pb2
 from acloud.public import config
-from acloud.public import errors
 
 
 class AcloudConfigManagerTest(unittest.TestCase):
diff --git a/public/device_driver.py b/public/device_driver.py
index b401410..739f470 100755
--- a/public/device_driver.py
+++ b/public/device_driver.py
@@ -36,8 +36,8 @@
 import dateutil.parser
 import dateutil.tz
 
+from acloud import errors
 from acloud.public import avd
-from acloud.public import errors
 from acloud.public import report
 from acloud.public.actions import common_operations
 from acloud.internal import constants
diff --git a/public/errors.py b/public/errors.py
deleted file mode 100755
index 9c13193..0000000
--- a/public/errors.py
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2016 - The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Define errors that are raised by the driver."""
-
-HTTP_NOT_FOUND_CODE = 404
-
-
-class DriverError(Exception):
-    """Base Android Gce driver exception."""
-
-
-class ConfigError(DriverError):
-    """Error related to config."""
-
-
-class CommandArgError(DriverError):
-    """Error related to command line args."""
-
-
-class GceOperationTimeoutError(DriverError):
-    """Error raised when a GCE operation timedout."""
-
-
-class HttpError(DriverError):
-    """Error related to http requests."""
-
-    def __init__(self, code, message):
-        self.code = code
-        super(HttpError, self).__init__(message)
-
-    @staticmethod
-    def CreateFromHttpError(http_error):
-        """Create from an apiclient.errors.HttpError.
-
-        Parse the error code from apiclient.errors.HttpError
-        and create an instance of HttpError from this module
-        that has the error code.
-
-        Args:
-            http_error: An apiclient.errors.HttpError instance.
-
-        Returns:
-            An HttpError instance from this module.
-        """
-        return HttpError(http_error.resp.status, str(http_error))
-
-
-class ResourceNotFoundError(HttpError):
-    """Error raised when a resource is not found."""
-
-
-class InvalidVirtualDeviceIpError(DriverError):
-    """Invalid virtual device's IP is set.
-
-    Raise this when the virtual device's IP of an AVD instance is invalid.
-    """
-
-
-class HasRetriableRequestsError(DriverError):
-    """Raised when some retriable requests fail in a batch execution."""
-
-
-class AuthenticationError(DriverError):
-    """Raised when authentication fails."""
-
-
-class DeviceBootError(DriverError):
-    """To catch device boot errors."""
-
-
-class NoSubnetwork(DriverError):
-    """When there is no subnetwork for the GCE."""
-
-
-class DeviceConnectionError(DriverError):
-    """To catch device connection errors."""
-
-
-class DeviceBootTimeoutError(DeviceBootError):
-    """Raised when an AVD defice failed to boot within timeout."""
-
-
-class SetupError(Exception):
-    """Base Setup cmd exception."""
-
-
-class OSTypeError(SetupError):
-    """Error related to OS type."""
-
-
-class NoGoogleSDKDetected(SetupError):
-    """Can't find the SDK path."""
diff --git a/setup/google_sdk.py b/setup/google_sdk.py
index 2ff009b..c012dfe 100644
--- a/setup/google_sdk.py
+++ b/setup/google_sdk.py
@@ -36,8 +36,8 @@
 import tempfile
 import urllib2
 
+from acloud import errors
 from acloud.internal.lib import utils
-from acloud.public import errors
 
 SDK_BIN_PATH = os.path.join("google-cloud-sdk", "bin")
 GCLOUD_BIN = "gcloud"
