One step closer to goal.
diff --git a/Makefile b/Makefile
index cb3eed4..6e54b3a 100644
--- a/Makefile
+++ b/Makefile
@@ -14,6 +14,10 @@
 # limitations under the License.
 #
 
+ifeq ($(VOLTHA_BASE)_set,_set)
+$(error To get started, please source the env.sh file)
+endif
+
 include setup.mk
 
 VENVDIR := venv
@@ -25,7 +29,9 @@
 ## New directories can be added here
 DIRS:=\
 voltha \
-voltha/northbound/openflow
+voltha/northbound/openflow \
+voltha/northbound/openflow/agent \
+voltha/northbound/openflow/oftest
 
 ## If one directory depends on another directory that
 ## dependency can be expressed here
diff --git a/env.sh b/env.sh
index d8c2c5a..e88f121 100644
--- a/env.sh
+++ b/env.sh
@@ -1,4 +1,5 @@
 # sourcing this file is needed to make local development and integration testing work
+export VOLTHA_BASE=$PWD
 
 # load local python virtualenv 
 . venv/bin/activate
diff --git a/voltha/Makefile b/voltha/Makefile
index 67ebfa7..e0854b1 100644
--- a/voltha/Makefile
+++ b/voltha/Makefile
@@ -14,7 +14,9 @@
 # limitations under the License.
 #
 
-VOLTHA_BASE:=../.
+ifeq ($(VOLTHA_BASE)_set,_set)
+$(error If your getting this error, please type ". ./env.sh" at the top directory)
+endif
 
 include $(VOLTHA_BASE)/setup.mk
 
diff --git a/voltha/northbound/openflow/Makefile b/voltha/northbound/openflow/Makefile
index 0073d1e..e0854b1 100644
--- a/voltha/northbound/openflow/Makefile
+++ b/voltha/northbound/openflow/Makefile
@@ -14,7 +14,9 @@
 # limitations under the License.
 #
 
-VOLTHA_BASE:=../../../.
+ifeq ($(VOLTHA_BASE)_set,_set)
+$(error If your getting this error, please type ". ./env.sh" at the top directory)
+endif
 
 include $(VOLTHA_BASE)/setup.mk
 
diff --git a/voltha/northbound/openflow/agent/Makefile b/voltha/northbound/openflow/agent/Makefile
new file mode 100644
index 0000000..e0854b1
--- /dev/null
+++ b/voltha/northbound/openflow/agent/Makefile
@@ -0,0 +1,26 @@
+#
+# 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.
+#
+
+ifeq ($(VOLTHA_BASE)_set,_set)
+$(error If your getting this error, please type ". ./env.sh" at the top directory)
+endif
+
+include $(VOLTHA_BASE)/setup.mk
+
+PYTHONFILES:=$(wildcard *.py)
+
+flake8: 
+	$(FLAKE8) $(PYTHONFILES)
diff --git a/voltha/northbound/openflow/oftest/Makefile b/voltha/northbound/openflow/oftest/Makefile
new file mode 100644
index 0000000..e0854b1
--- /dev/null
+++ b/voltha/northbound/openflow/oftest/Makefile
@@ -0,0 +1,26 @@
+#
+# 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.
+#
+
+ifeq ($(VOLTHA_BASE)_set,_set)
+$(error If your getting this error, please type ". ./env.sh" at the top directory)
+endif
+
+include $(VOLTHA_BASE)/setup.mk
+
+PYTHONFILES:=$(wildcard *.py)
+
+flake8: 
+	$(FLAKE8) $(PYTHONFILES)