diff --git a/planetstack/core/api/deployment_networks.py b/planetstack/core/api/deployment_networks.py
index fcd2145..ee1f68e 100644
--- a/planetstack/core/api/deployment_networks.py
+++ b/planetstack/core/api/deployment_networks.py
@@ -1,16 +1,16 @@
 from types import StringTypes
-from core.models import DeploymentNetwork
+from core.models import Deployment
 from django.contrib.auth import authenticate
 
 def _get_deployment_networks(filter):
     if isinstance(filter, StringTypes) and filter.isdigit():
         filter = int(filter)
     if isinstance(filter, int):
-        deployment_networks = DeploymentNetwork.objects.filter(id=filter)
+        deployment_networks = Deployment.objects.filter(id=filter)
     elif isinstance(filter, StringTypes):
-        deployment_networks = DeploymentNetwork.objects.filter(name=filter)
+        deployment_networks = Deployment.objects.filter(name=filter)
     elif isinstance(filter, dict):
-        deployment_networks = DeploymentNetwork.objects.filter(**filter)
+        deployment_networks = Deployment.objects.filter(**filter)
     else:
         deployment_networks = []
     return deployment_networks 
@@ -18,7 +18,7 @@
 def add_deployment_network(auth, name):
     user = authenticate(username=auth.get('username'),
                         password=auth.get('password'))
-    deployment = DeploymentNetwork(name=name)
+    deployment = Deployment(name=name)
     deployment.save()
     return deployment
 
