diff --git a/containers/xos/Dockerfile.client b/containers/xos/Dockerfile.client
index 1651566..1818c5c 100644
--- a/containers/xos/Dockerfile.client
+++ b/containers/xos/Dockerfile.client
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 # xosproject/xos-client
-FROM xosproject/xos-libraries:2.0.0
+FROM xosproject/xos-libraries:master
 
 # Install XOS client
 COPY xos/xos_client /tmp/xos_client
diff --git a/containers/xos/Dockerfile.libraries b/containers/xos/Dockerfile.libraries
index 4da6c2a..23ec024 100644
--- a/containers/xos/Dockerfile.libraries
+++ b/containers/xos/Dockerfile.libraries
@@ -14,7 +14,7 @@
 # limitations under the License.
 
 
-FROM xosproject/xos-base:2.0.0
+FROM xosproject/xos-base:master
 
 # Add libraries
 COPY lib /opt/xos/lib
diff --git a/containers/xos/Dockerfile.synchronizer-base b/containers/xos/Dockerfile.synchronizer-base
index cbae54b..cb2a7b6 100644
--- a/containers/xos/Dockerfile.synchronizer-base
+++ b/containers/xos/Dockerfile.synchronizer-base
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 # xosproject/xos-synchronizer-base
-FROM xosproject/xos-client:2.0.0
+FROM xosproject/xos-client:master
 
 COPY xos/synchronizers/new_base /opt/xos/synchronizers/new_base
 COPY xos/xos/logger.py /opt/xos/xos/logger.py
diff --git a/containers/xos/Dockerfile.test b/containers/xos/Dockerfile.test
index 610a306..1a2beb8 100644
--- a/containers/xos/Dockerfile.test
+++ b/containers/xos/Dockerfile.test
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 # xosproject/xos-test
-FROM xosproject/xos:2.0.0
+FROM xosproject/xos:master
 
 # install nodejs
 COPY containers/xos/nodesource.gpg.key /tmp/nodesource.gpg.key
diff --git a/containers/xos/Dockerfile.xos-core b/containers/xos/Dockerfile.xos-core
index 19182bb..af877dc 100644
--- a/containers/xos/Dockerfile.xos-core
+++ b/containers/xos/Dockerfile.xos-core
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 # xosproject/xos-core
-FROM xosproject/xos-libraries:2.0.0
+FROM xosproject/xos-libraries:master
 
 # Install XOS
 ADD xos /opt/xos
diff --git a/xos/core/models/core.xproto b/xos/core/models/core.xproto
index 5f09ec0..f153573 100644
--- a/xos/core/models/core.xproto
+++ b/xos/core/models/core.xproto
@@ -109,13 +109,13 @@
 }
 
 message AddressPool (XOSBase) {
-     required string name = 1 [db_index = False, max_length = 32, null = False, blank = False, unique = True];
-     optional string addresses = 2 [db_index = False, null = True, blank = True, varchar = True];
-     optional string gateway_ip = 3 [db_index = False, max_length = 32, null = True, blank = False];
-     optional string gateway_mac = 4 [db_index = False, max_length = 32, null = True, blank = False];
-     optional string cidr = 5 [db_index = False, max_length = 32, null = True, blank = False];
-     optional string inuse = 6 [db_index = False, null = True, blank = True, varchar = True];
-     optional manytoone service->Service:addresspools = 7 [db_index = True, null = True, blank = True];
+     required string name = 1 [db_index = False, max_length = 32, null = False, blank = False, unique = True, help_text="Name of this AddressPool"];
+     optional string addresses = 2 [db_index = False, null = True, blank = True, varchar = True, help_text="Space-separated list of available addresses"];
+     required string gateway_ip = 3 [db_index = False, max_length = 32, help_text="Gateway IP address for this AddressPool"];
+     required string gateway_mac = 4 [db_index = False, max_length = 32, help_text="Gateway MAC address for this AddressPool"];
+     required string cidr = 5 [db_index = False, max_length = 32, help_text="Subnet for this AddressPool"];
+     optional string inuse = 6 [db_index = False, null = True, blank = True, varchar = True, help_text="Space-separated list of inuse addresses"];
+     optional manytoone service->Service:addresspools = 7 [db_index = True, null = True, blank = True, help_text="Service this AddressPool belongs to"];
 }
 
 message ComputeServiceInstance (ServiceInstance) {
