diff --git a/env.sh b/env.sh
index c24eb91..bd4f04c 100644
--- a/env.sh
+++ b/env.sh
@@ -13,7 +13,7 @@
 . $VENVDIR/bin/activate
 
 # add top-level voltha dir to pythonpath
-export PYTHONPATH=$PYTHONPATH:$VOLTHA_BASE/voltha
+export PYTHONPATH=$PYTHONPATH:$VOLTHA_BASE/voltha:$VOLTHA_BASE/voltha/core/protos/third_party
 
 # assign DOCKER_HOST_IP to be the main ip address of this host
 export DOCKER_HOST_IP=$(python voltha/nethelpers.py)
diff --git a/voltha/northbound/grpc/grpc_client.py b/voltha/northbound/grpc/grpc_client.py
index afb727e..fc2b316 100644
--- a/voltha/northbound/grpc/grpc_client.py
+++ b/voltha/northbound/grpc/grpc_client.py
@@ -18,7 +18,6 @@
 
 import grpc
 
-from voltha.northbound.grpc import pb2_loader
 from voltha.core.protos import voltha_pb2
 
 
diff --git a/voltha/northbound/grpc/grpc_introspect.py b/voltha/northbound/grpc/grpc_introspect.py
index 55e5846..9a30077 100755
--- a/voltha/northbound/grpc/grpc_introspect.py
+++ b/voltha/northbound/grpc/grpc_introspect.py
@@ -22,17 +22,12 @@
 import inspect
 from collections import OrderedDict
 
-from enum import Enum
 from google.protobuf.descriptor import FieldDescriptor, Descriptor
 from google.protobuf.message import Message
 from simplejson import dumps
 
 from google.protobuf import descriptor_pb2
 
-# TODO this hack needs to go
-# don't worry if the below too lines are flagged by your IDE as unused and
-# unresolvable; they are fine.
-import voltha.northbound.grpc.pb2_loader
 from google.api import http_pb2
 
 
diff --git a/voltha/northbound/grpc/grpc_server.py b/voltha/northbound/grpc/grpc_server.py
index b965dbf..9e1e44e 100644
--- a/voltha/northbound/grpc/grpc_server.py
+++ b/voltha/northbound/grpc/grpc_server.py
@@ -21,7 +21,6 @@
 from concurrent import futures
 from structlog import get_logger
 
-from voltha.northbound.grpc import pb2_loader
 from voltha.core.protos import voltha_pb2
 
 log = get_logger()
diff --git a/voltha/northbound/grpc/pb2_loader.py b/voltha/northbound/grpc/pb2_loader.py
deleted file mode 100644
index 4e0d41d..0000000
--- a/voltha/northbound/grpc/pb2_loader.py
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# Copyright 2016 the original author or authors.
-#
-# 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.
-#
-
-"""Assist in loading *_pb2.py protobuf files"""
-
-import sys
-
-
-# TODO this hack needs to go
-#~~~~~~~~~~~~~~~~~~~~ begin import hach ~~~~~~~~~~~~~~~~~~~~~~~~~
-# Import hack to allow loading the google.api local files
-# without shadowing the google.protoc dependency. We needed
-# to do this because the grpc-generated pb2 files use
-# "from google.api import ..." directive and we cannot alter
-# the path.
-class ModuleProxy(object):
-    def __getattr__(self, key):
-        if key == 'http_pb2':
-            return http_pb2
-        elif key == 'annotations_pb2':
-            return annotations_pb2
-        else:
-            return None
-sys.modules['google.api'] = ModuleProxy()
-from voltha.core.protos.third_party.google.api import http_pb2
-from voltha.core.protos.third_party.google.api import annotations_pb2
-#~~~~~~~~~~~~~~~~~~~~  end import hach  ~~~~~~~~~~~~~~~~~~~~~~~~~
-
