This closes #130
diff --git a/karaf/catalog/src/main/resources/catalog.bom b/karaf/catalog/src/main/resources/catalog.bom
new file mode 100644
index 0000000..1550f3f
--- /dev/null
+++ b/karaf/catalog/src/main/resources/catalog.bom
@@ -0,0 +1,31 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+#
+brooklyn.catalog:
+  version: "0.13.0-SNAPSHOT" # BROOKLYN_VERSION
+
+  brooklyn.libraries:
+  - mvn:org.apache.brooklyn/brooklyn-software-cm-ansible/0.13.0-SNAPSHOT # BROOKLYN_VERSION
+  - mvn:org.apache.brooklyn/brooklyn-software-cm-chef/0.13.0-SNAPSHOT # BROOKLYN_VERSION
+  - mvn:org.apache.brooklyn/brooklyn-software-cm-salt/0.13.0-SNAPSHOT # BROOKLYN_VERSION
+  - mvn:org.apache.brooklyn/brooklyn-software-database/0.13.0-SNAPSHOT # BROOKLYN_VERSION
+  - mvn:org.apache.brooklyn/brooklyn-software-messaging/0.13.0-SNAPSHOT # BROOKLYN_VERSION
+  - mvn:org.apache.brooklyn/brooklyn-software-monitoring/0.13.0-SNAPSHOT # BROOKLYN_VERSION
+  - mvn:org.apache.brooklyn/brooklyn-software-network/0.13.0-SNAPSHOT # BROOKLYN_VERSION
+  - mvn:org.apache.brooklyn/brooklyn-software-nosql/0.13.0-SNAPSHOT # BROOKLYN_VERSION
+  - mvn:org.apache.brooklyn/brooklyn-software-osgi/0.13.0-SNAPSHOT # BROOKLYN_VERSION
+  - mvn:org.apache.brooklyn/brooklyn-software-webapp/0.13.0-SNAPSHOT # BROOKLYN_VERSION
diff --git a/karaf/catalog/src/main/resources/library-catalog-classes.bom b/karaf/catalog/src/main/resources/library-catalog-classes.bom
deleted file mode 100644
index 2fafd42..0000000
--- a/karaf/catalog/src/main/resources/library-catalog-classes.bom
+++ /dev/null
@@ -1,402 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you 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.
-#
-brooklyn.catalog:
-  version: "0.13.0-SNAPSHOT" # BROOKLYN_VERSION
-  include: classpath://catalog-classes.bom
-
-  items:
-
-  # org.apache.brooklyn.software-webapp
-  - itemType: entity
-    items:
-    - id: org.apache.brooklyn.entity.webapp.nodejs.NodeJsWebAppService
-      iconUrl: classpath:///nodejs-logo.png
-      item:
-        type: org.apache.brooklyn.entity.webapp.nodejs.NodeJsWebAppService
-        name: Node.JS Application
-    - id: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server
-      iconUrl: classpath:///jboss-logo.png
-      item:
-        type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server
-        name: JBoss Application Server 7
-        description: AS7 - an open source Java application server from JBoss
-    - id: org.apache.brooklyn.entity.proxy.nginx.UrlMapping
-      item:
-        type: org.apache.brooklyn.entity.proxy.nginx.UrlMapping
-    - id: org.apache.brooklyn.entity.webapp.DynamicWebAppFabric
-      item:
-        type: org.apache.brooklyn.entity.webapp.DynamicWebAppFabric
-    - id: org.apache.brooklyn.entity.proxy.nginx.NginxController
-      iconUrl: classpath:///nginx-logo.jpeg
-      item:
-        type: org.apache.brooklyn.entity.proxy.nginx.NginxController
-        name: Nginx Server
-        description: A single Nginx server. Provides HTTP and reverse proxy services
-    - id: org.apache.brooklyn.entity.webapp.jboss.JBoss6Server
-      iconUrl: classpath:///jboss-logo.png
-      item:
-        type: org.apache.brooklyn.entity.webapp.jboss.JBoss6Server
-        name: JBoss Application Server 6
-        description: AS6 -  an open source Java application server from JBoss
-    - id: org.apache.brooklyn.entity.webapp.tomcat.Tomcat8Server
-      iconUrl: classpath:///tomcat-logo.png
-      item:
-        type: org.apache.brooklyn.entity.webapp.tomcat.Tomcat8Server
-        name: Tomcat 8 Server
-    - id: org.apache.brooklyn.entity.proxy.LoadBalancerCluster
-      item:
-        type: org.apache.brooklyn.entity.proxy.LoadBalancerCluster
-    - id: org.apache.brooklyn.entity.webapp.jetty.Jetty6Server
-      iconUrl: classpath:///jetty-logo.png
-      item:
-        type: org.apache.brooklyn.entity.webapp.jetty.Jetty6Server
-        name: Jetty6 Server
-        description: Old version (v6 @ Mortbay) of the popular Jetty webapp container
-    - id: org.apache.brooklyn.entity.webapp.DynamicWebAppCluster
-      item:
-        type: org.apache.brooklyn.entity.webapp.DynamicWebAppCluster
-        name: Dynamic Web-app Cluster
-        description: A cluster of web-apps, which can be dynamically re-sized; this does not include a load-balancer
-    - id: org.apache.brooklyn.entity.webapp.tomcat.TomcatServer
-      iconUrl: classpath:///tomcat-logo.png
-      item:
-        type: org.apache.brooklyn.entity.webapp.tomcat.TomcatServer
-        name: Tomcat 7 Server
-    - id: org.apache.brooklyn.entity.dns.geoscaling.GeoscalingDnsService
-      iconUrl: classpath:///geoscaling-logo.gif
-      item:
-        type: org.apache.brooklyn.entity.dns.geoscaling.GeoscalingDnsService
-    - id: org.apache.brooklyn.entity.webapp.ControlledDynamicWebAppCluster
-      item:
-        type: org.apache.brooklyn.entity.webapp.ControlledDynamicWebAppCluster
-        name: Controlled Dynamic Web-app Cluster
-        description: A cluster of load-balanced web-apps, which can be dynamically re-sized
-
-  # org.apache.brooklyn.software-osgi
-  - itemType: entity
-    items:
-    - id: org.apache.brooklyn.entity.osgi.karaf.KarafContainer
-      iconUrl: classpath:///karaf-logo.png
-      item:
-        type: org.apache.brooklyn.entity.osgi.karaf.KarafContainer
-        name: Karaf
-        description: Apache Karaf is a small OSGi based runtime which provides a lightweight container onto which various components and applications can be deployed.
-
-  # org.apache.brooklyn.software-nosql
-  - itemType: entity
-    items:
-    - id: org.apache.brooklyn.entity.nosql.redis.RedisStore
-      iconUrl: classpath:///redis-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.redis.RedisStore
-        name: Redis Server
-        description: Redis is an open-source, networked, in-memory, key-value data store with optional durability
-    - id: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBRouterCluster
-      iconUrl: classpath:///mongodb-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBRouterCluster
-    - id: org.apache.brooklyn.entity.nosql.cassandra.CassandraDatacenter
-      iconUrl: classpath:///cassandra-logo.jpeg
-      item:
-        type: org.apache.brooklyn.entity.nosql.cassandra.CassandraDatacenter
-        name: Apache Cassandra Datacenter Cluster
-        description: Cassandra is a highly scalable, eventually
-    - id: org.apache.brooklyn.entity.nosql.solr.SolrServer
-      iconUrl: classpath:///solr-logo.jpeg
-      item:
-        type: org.apache.brooklyn.entity.nosql.solr.SolrServer
-        name: Apache Solr Node
-        description: Solr is the popular, blazing fast open source enterprise search
-    - id: org.apache.brooklyn.entity.nosql.couchdb.CouchDBNode
-      iconUrl: classpath:///couchdb-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.couchdb.CouchDBNode
-        name: CouchDB Node
-    - id: org.apache.brooklyn.entity.nosql.redis.RedisShard
-      iconUrl: classpath:///redis-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.redis.RedisShard
-    - id: org.apache.brooklyn.entity.nosql.redis.RedisCluster
-      iconUrl: classpath:///redis-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.redis.RedisCluster
-        name: Redis Cluster
-        description: Redis is an open-source, networked, in-memory, key-value data store with optional durability
-    - id: org.apache.brooklyn.entity.nosql.hazelcast.HazelcastCluster
-      iconUrl: classpath:///hazelcast-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.hazelcast.HazelcastCluster
-        name: Hazelcast Cluster
-        description: Hazelcast is a clustering and highly scalable data distribution platform for Java.
-    - id: org.apache.brooklyn.entity.nosql.couchdb.CouchDBCluster
-      iconUrl: classpath:///couchdb-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.couchdb.CouchDBCluster
-    - id: org.apache.brooklyn.entity.nosql.couchbase.CouchbaseNode
-      iconUrl: classpath:///couchbase-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.couchbase.CouchbaseNode
-        name: CouchBase Node
-        description: Couchbase Server is an open source, distributed (shared-nothing architecture)
-    - id: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBShardedDeployment
-      iconUrl: classpath:///mongodb-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBShardedDeployment
-        name: MongoDB Sharded Deployment
-    - id: org.apache.brooklyn.entity.nosql.cassandra.CassandraNode
-      iconUrl: classpath:///cassandra-logo.jpeg
-      item:
-        type: org.apache.brooklyn.entity.nosql.cassandra.CassandraNode
-        name: Apache Cassandra Node
-        description: Cassandra is a highly scalable, eventually
-    - id: org.apache.brooklyn.entity.nosql.riak.RiakNode
-      iconUrl: classpath:///org/apache/brooklyn/entity/nosql/riak/riak.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.riak.RiakNode
-        name: Riak Node
-        description: Riak is a distributed NoSQL key-value data store that offers
-    - id: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServerCluster
-      iconUrl: classpath:///mongodb-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServerCluster
-    - id: org.apache.brooklyn.entity.nosql.mongodb.MongoDBServer
-      iconUrl: classpath:///mongodb-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.mongodb.MongoDBServer
-        name: MongoDB Server
-    - id: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBRouter
-      iconUrl: classpath:///mongodb-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBRouter
-        name: MongoDB Router
-    - id: org.apache.brooklyn.entity.nosql.mongodb.MongoDBReplicaSet
-      iconUrl: classpath:///mongodb-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.mongodb.MongoDBReplicaSet
-    - id: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBShardCluster
-      iconUrl: classpath:///mongodb-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBShardCluster
-    - id: org.apache.brooklyn.entity.nosql.mongodb.MongoDBClient
-      iconUrl: classpath:///mongodb-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.mongodb.MongoDBClient
-    - id: org.apache.brooklyn.entity.nosql.elasticsearch.ElasticSearchNode
-      item:
-        type: org.apache.brooklyn.entity.nosql.elasticsearch.ElasticSearchNode
-        name: Elastic Search Node
-        description: Elasticsearch is an open-source search server based on Lucene.
-    - id: org.apache.brooklyn.entity.nosql.cassandra.CassandraFabric
-      iconUrl: classpath:///cassandra-logo.jpeg
-      item:
-        type: org.apache.brooklyn.entity.nosql.cassandra.CassandraFabric
-        name: Apache Cassandra Database Fabric
-        description: Cassandra is a highly scalable, eventually
-    - id: org.apache.brooklyn.entity.nosql.elasticsearch.ElasticSearchCluster
-      item:
-        type: org.apache.brooklyn.entity.nosql.elasticsearch.ElasticSearchCluster
-        name: Elastic Search Cluster
-        description: Elasticsearch is an open-source search server based on Lucene.
-    - id: org.apache.brooklyn.entity.nosql.cassandra.CassandraCluster
-      iconUrl: classpath:///cassandra-logo.jpeg
-      item:
-        type: org.apache.brooklyn.entity.nosql.cassandra.CassandraCluster
-    - id: org.apache.brooklyn.entity.nosql.redis.RedisSlave
-      iconUrl: classpath:///redis-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.redis.RedisSlave
-    - id: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServer
-      iconUrl: classpath:///mongodb-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServer
-    - id: org.apache.brooklyn.entity.nosql.couchbase.CouchbaseCluster
-      iconUrl: classpath:///couchbase-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.couchbase.CouchbaseCluster
-        name: CouchBase Cluster
-        description: Couchbase is an open source, distributed (shared-nothing architecture)
-    - id: org.apache.brooklyn.entity.nosql.couchbase.CouchbaseSyncGateway
-      iconUrl: classpath:///couchbase-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.couchbase.CouchbaseSyncGateway
-    - id: org.apache.brooklyn.entity.nosql.hazelcast.HazelcastNode
-      iconUrl: classpath:///hazelcast-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.hazelcast.HazelcastNode
-        name: Hazelcast Node
-        description: Hazelcast is a clustering and highly scalable data distribution platform for Java.
-    - id: org.apache.brooklyn.entity.nosql.riak.RiakCluster
-      iconUrl: classpath:///org/apache/brooklyn/entity/nosql/riak/riak.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.riak.RiakCluster
-        name: Riak Cluster
-        description: Riak is a distributed NoSQL key-value data store that offers
-    - id: org.apache.brooklyn.entity.nosql.mongodb.sharding.CoLocatedMongoDBRouter
-      iconUrl: classpath:///mongodb-logo.png
-      item:
-        type: org.apache.brooklyn.entity.nosql.mongodb.sharding.CoLocatedMongoDBRouter
-
-  # org.apache.brooklyn.software-network
-  - itemType: entity
-    items:
-    - id: org.apache.brooklyn.entity.network.bind.BindDnsServer
-      description: BIND is an Internet Domain Name Server.
-      item:
-        type: org.apache.brooklyn.entity.network.bind.BindDnsServer
-        name: BIND
-
-  # org.apache.brooklyn.software-monitoring
-  - itemType: entity
-    items:
-    - id: org.apache.brooklyn.entity.monitoring.monit.MonitNode
-      iconUrl: classpath:///monit-logo.png
-      item:
-        type: org.apache.brooklyn.entity.monitoring.monit.MonitNode
-        name: Monit Node
-        description: Monit is a free open source utility for managing and monitoring, processes, programs, files, directories and filesystems on a UNIX system
-
-  # org.apache.brooklyn.software-messaging
-  - itemType: entity
-    items:
-    - id: org.apache.brooklyn.entity.messaging.activemq.ActiveMQBroker
-      iconUrl: classpath:///activemq-logo.png
-      item:
-        type: org.apache.brooklyn.entity.messaging.activemq.ActiveMQBroker
-        name: ActiveMQ Broker
-        description: ActiveMQ is an open source message broker which fully implements the Java Message Service 1.1 (JMS)
-    - id: org.apache.brooklyn.entity.messaging.qpid.QpidBroker
-      iconUrl: classpath:///qpid-logo.jpeg
-      item:
-        type: org.apache.brooklyn.entity.messaging.qpid.QpidBroker
-        name: Qpid Broker
-        description: Apache Qpid is an open-source messaging system, implementing the Advanced Message Queuing Protocol (AMQP)
-    - id: org.apache.brooklyn.entity.messaging.storm.Storm
-      iconUrl: classpath:///apache-storm-logo.png
-      item:
-        type: org.apache.brooklyn.entity.messaging.storm.Storm
-        name: Storm Node
-        description: Apache Storm is a distributed realtime computation system.
-    - id: org.apache.brooklyn.entity.messaging.kafka.KafkaCluster
-      iconUrl: classpath:///kafka-logo.png
-      item:
-        type: org.apache.brooklyn.entity.messaging.kafka.KafkaCluster
-        name: Kafka
-        description: Apache Kafka is a distributed publish-subscribe messaging system
-    - id: org.apache.brooklyn.entity.messaging.activemq.ActiveMQQueue
-      iconUrl: classpath:///activemq-logo.png
-      item:
-        type: org.apache.brooklyn.entity.messaging.activemq.ActiveMQQueue
-    - id: org.apache.brooklyn.entity.zookeeper.ZooKeeperEnsemble
-      iconUrl: classpath:///zookeeper_logo.gif
-      item:
-        type: org.apache.brooklyn.entity.zookeeper.ZooKeeperEnsemble
-        name: ZooKeeper ensemble
-        description: A cluster of ZooKeeper servers.
-    - id: org.apache.brooklyn.entity.messaging.kafka.KafkaZooKeeper
-      iconUrl: classpath:///zookeeper_logo.gif
-      item:
-        type: org.apache.brooklyn.entity.messaging.kafka.KafkaZooKeeper
-    - id: org.apache.brooklyn.entity.messaging.activemq.ActiveMQTopic
-      iconUrl: classpath:///activemq-logo.png
-      item:
-        type: org.apache.brooklyn.entity.messaging.activemq.ActiveMQTopic
-    - id: org.apache.brooklyn.entity.messaging.qpid.QpidQueue
-      iconUrl: classpath:///qpid-logo.jpeg
-      item:
-        type: org.apache.brooklyn.entity.messaging.qpid.QpidQueue
-    - id: org.apache.brooklyn.entity.zookeeper.ZooKeeperNode
-      iconUrl: classpath:///zookeeper_logo.gif
-      item:
-        type: org.apache.brooklyn.entity.zookeeper.ZooKeeperNode
-        name: ZooKeeper Node
-        description: Apache ZooKeeper is a server which enables
-    - id: org.apache.brooklyn.entity.messaging.rabbit.RabbitBroker
-      iconUrl: classpath:///RabbitMQLogo.png
-      item:
-        type: org.apache.brooklyn.entity.messaging.rabbit.RabbitBroker
-        name: RabbitMQ Broker
-        description: RabbitMQ is an open source message broker software (i.e. message-oriented middleware) that implements the Advanced Message Queuing Protocol (AMQP) standard
-    - id: org.apache.brooklyn.entity.messaging.kafka.KafkaBroker
-      iconUrl: classpath:///kafka-logo.png
-      item:
-        type: org.apache.brooklyn.entity.messaging.kafka.KafkaBroker
-    - id: org.apache.brooklyn.entity.messaging.qpid.QpidTopic
-      iconUrl: classpath:///qpid-logo.jpeg
-      item:
-        type: org.apache.brooklyn.entity.messaging.qpid.QpidTopic
-    - id: org.apache.brooklyn.entity.messaging.storm.StormDeployment
-      iconUrl: classpath:///apache-storm-logo.png
-      item:
-        type: org.apache.brooklyn.entity.messaging.storm.StormDeployment
-        name: Storm Deployment
-        description: A Storm cluster. Apache Storm is a distributed realtime computation system.
-
-  # org.apache.brooklyn.software-database
-  - itemType: entity
-    items:
-    - id: org.apache.brooklyn.entity.database.crate.CrateNode
-      iconUrl: classpath:///crate-logo.png
-      item:
-        type: org.apache.brooklyn.entity.database.crate.CrateNode
-    - id: org.apache.brooklyn.entity.database.mysql.MySqlNode
-      iconUrl: classpath:///mysql-logo-110x57.png
-      item:
-        type: org.apache.brooklyn.entity.database.mysql.MySqlNode
-        name: MySql Node
-        description: MySql is an open source relational database management system (RDBMS)
-    - id: org.apache.brooklyn.entity.database.mysql.MySqlCluster
-      iconUrl: classpath:///mysql-logo-110x57.png
-      item:
-        type: org.apache.brooklyn.entity.database.mysql.MySqlCluster
-        name: MySql Master-Slave cluster
-        description: Sets up a cluster of MySQL nodes using master-slave relation and binary logging
-    - id: org.apache.brooklyn.entity.database.postgresql.PostgreSqlNode
-      iconUrl: classpath:///postgresql-logo-200px.png
-      item:
-        type: org.apache.brooklyn.entity.database.postgresql.PostgreSqlNode
-        name: PostgreSQL Node
-        description: PostgreSQL is an object-relational database management system (ORDBMS)
-    - id: org.apache.brooklyn.entity.database.rubyrep.RubyRepNode
-      item:
-        type: org.apache.brooklyn.entity.database.rubyrep.RubyRepNode
-    - id: org.apache.brooklyn.entity.database.mariadb.MariaDbNode
-      iconUrl: classpath:///mariadb-logo-180x119.png
-      item:
-        type: org.apache.brooklyn.entity.database.mariadb.MariaDbNode
-        name: MariaDB Node
-        description: MariaDB is an open source relational database management system (RDBMS)
-
-  # org.apache.brooklyn.software-cm-salt
-  - itemType: entity
-    items:
-    - id: org.apache.brooklyn.entity.cm.salt.SaltEntity
-      iconUrl: classpath:///saltstack-logo.png
-      item:
-        type: org.apache.brooklyn.entity.cm.salt.SaltEntity
-        name: SaltEntity
-        description: Software managed by Salt CM
-
-  # org.apache.brooklyn.software-cm-ansible
-  - itemType: entity
-    items:
-    - id: org.apache.brooklyn.entity.cm.ansible.AnsibleEntity
-      iconUrl: classpath:///ansible-logo.png
-      item:
-        type: org.apache.brooklyn.entity.cm.ansible.AnsibleEntity
-        name: AnsibleEntity
-        description: Software managed by Ansible CM
\ No newline at end of file
diff --git a/software/network/src/main/resources/catalog.bom b/software/network/src/main/resources/catalog.bom
index ef71a4a..ae0799e 100644
--- a/software/network/src/main/resources/catalog.bom
+++ b/software/network/src/main/resources/catalog.bom
@@ -21,6 +21,7 @@
     items:
     - id: org.apache.brooklyn.entity.network.bind.BindDnsServer
       description: BIND is an Internet Domain Name Server.
+      iconUrl: classpath:///isc-logo.png
       item:
         type: org.apache.brooklyn.entity.network.bind.BindDnsServer
         name: BIND
diff --git a/software/nosql/src/main/resources/catalog.bom b/software/nosql/src/main/resources/catalog.bom
index 12990a1..71d7dc1 100644
--- a/software/nosql/src/main/resources/catalog.bom
+++ b/software/nosql/src/main/resources/catalog.bom
@@ -181,52 +181,3 @@
       item:
         type: org.apache.brooklyn.entity.nosql.mongodb.sharding.CoLocatedMongoDBRouter
         name: Co-located MongoDB Router
-
-
-    - id: bash-web-and-riak-template
-      itemType: template
-      name: "Template: Bash Web Server and Scaling Riak Cluster"
-      description: |
-        Sample YAML building on Template bash-web-server-template,
-        composing that blueprint with a Riak cluster and injecting the URL
-      item:
-        name: Bash Web Server and Riak Cluster (Brooklyn Example)
-
-        # this example *references* the previous one,
-        # combining it with a stock blueprint for a Riak cluster,
-        # and shows how a sensor from the latter can be injected
-
-        services:
-
-        # reference template bash-web-server-template, overriding message to point at riak
-        - type:           bash-web-server-template
-          brooklyn.config:
-            my.message:   $brooklyn:formatString("connected to Riak at %s",
-                              $brooklyn:entity("riak-cluster").attributeWhenReady("main.uri"))
-          # and clear the location defined there so it is taken from this template
-          locations:      []
-
-        # use the off-the-shelf Riak cluster
-        - type:           org.apache.brooklyn.entity.nosql.riak.RiakCluster
-          id:             riak-cluster
-          initialSize:    3
-          # and add a policy to scale based on ops per minute
-          brooklyn.policies:
-          - type: org.apache.brooklyn.policy.autoscaling.AutoScalerPolicy
-            brooklyn.config:
-              metric: riak.node.ops.1m.perNode
-              # more than 100 ops per second (6k/min) scales out, less than 50 scales back
-              # up to a max of 8 riak nodes here (can be changed in GUI / REST API afterwards)
-              metricLowerBound: 3000
-              metricUpperBound: 6000
-              minPoolSize: 3
-              maxPoolSize: 8
-              resizeUpStabilizationDelay: 30s
-              resizeDownStabilizationDelay: 5m
-
-        location:
-          jclouds:aws-ec2:
-            region:       eu-central-1
-            # edit these (or delete if credentials specified in brooklyn.properties)
-            identity:     <REPLACE>
-            credential:   <REPLACE>
diff --git a/software/webapp/src/main/resources/catalog.bom b/software/webapp/src/main/resources/catalog.bom
index 28dcfec..13a892b 100644
--- a/software/webapp/src/main/resources/catalog.bom
+++ b/software/webapp/src/main/resources/catalog.bom
@@ -89,165 +89,3 @@
         type: org.apache.brooklyn.entity.webapp.ControlledDynamicWebAppCluster
         name: Controlled Dynamic Web-app Cluster
         description: A cluster of load-balanced web-apps, which can be dynamically re-sized
-
-    - id: load-balancer
-      iconUrl: classpath:///nginx-logo.jpeg
-      item:
-        type: org.apache.brooklyn.entity.proxy.nginx.NginxController
-        name: Load Balancer (nginx)
-        description: |
-          Synonym for 'Nginx Server'.
-          Create a load balancer which will point at members in the group entity
-          referred to by the config key "serverPool".
-          The sensor advertising the port can be configured with the "member.sensor.portNumber" config key,
-          defaulting to `http.port`; all member entities which have published "service.up" will then be picked up.
-
-    - id: resilient-bash-web-cluster-template
-      itemType: template
-      name: "Template: Resilient Load-Balanced Bash Web Cluster with Sensors"
-      description: |
-        Sample YAML to provision a cluster of the bash/python web server nodes,
-        with sensors configured, and a load balancer pointing at them,
-        and resilience policies for node replacement and scaling
-      item:
-        name: Resilient Load-Balanced Bash Web Cluster (Brooklyn Example)
-
-        # this final example shows some of the advanced functionality:
-        # defining custom sensors, and a cluster with a "spec",
-        # policies for resilience and scaling based on that sensor,
-        # and wiring a load balancer in front of the cluster
-
-        # combining this with the riak cluster in the previous example
-        # is left as a suggested exercise for the user
-
-        services:
-
-        # define a cluster of the web nodes
-        - type:           cluster
-          name:           Cluster of Bash Web Nodes
-          id:             my-web-cluster
-          brooklyn.config:
-            initialSize:  1
-            memberSpec:
-              $brooklyn:entitySpec:
-                # template bash-web-server-template is used as the spec for items in this cluster
-                # with a new message overwriting the previous,
-                # and a lot of sensors defined
-                type:           bash-web-server-template
-                name:           My Bash Web Server VM with Sensors
-                # and clear the location defined there so it is taken from this template
-                locations:      []
-
-                brooklyn.config:
-                  my.message:   "part of the cluster"
-
-                brooklyn.initializers:
-                # make a simple request-count sensor, by counting the number of 200 responses in output.txt
-                - type: org.apache.brooklyn.core.sensor.ssh.SshCommandSensor
-                  brooklyn.config:
-                    name: reqs.count
-                    targetType: int
-                    period: 5s
-                    command: "cat output.txt | grep HTTP | grep 200 | wc | awk '{print $1}'"
-                # and publish the port as a sensor so the load-balancer can pick it up
-                - type:           org.apache.brooklyn.core.sensor.StaticSensor
-                  brooklyn.config:
-                    name:         app.port
-                    targetType:   int
-                    static.value: $brooklyn:config("my.app.port")
-
-                brooklyn.enrichers:
-                # derive reqs.per_sec from reqs.count
-                - type: org.apache.brooklyn.enricher.stock.YamlTimeWeightedDeltaEnricher
-                  brooklyn.config:
-                    enricher.sourceSensor: reqs.count
-                    enricher.targetSensor: reqs.per_sec
-                    enricher.delta.period: 1s
-                # and take an average over 30s for reqs.per_sec into reqs.per_sec.windowed_30s
-                - type: org.apache.brooklyn.enricher.stock.YamlRollingTimeWindowMeanEnricher
-                  brooklyn.config:
-                    enricher.sourceSensor: reqs.per_sec
-                    enricher.targetSensor: reqs.per_sec.windowed_30s
-                    enricher.window.duration: 30s
-
-                brooklyn.policies:
-                # restart if a failure is detected (with a max of one restart in 2m, sensor will propagate otherwise)
-                - type: org.apache.brooklyn.policy.ha.ServiceRestarter
-                  brooklyn.config:
-                    failOnRecurringFailuresInThisDuration: 2m
-
-          # back at the cluster, create a total per-sec and some per-node average
-          brooklyn.enrichers:
-          - type: org.apache.brooklyn.enricher.stock.Aggregator
-            brooklyn.config:
-              enricher.sourceSensor: reqs.per_sec
-              enricher.targetSensor: reqs.per_sec
-              transformation: sum
-          - type: org.apache.brooklyn.enricher.stock.Aggregator
-            brooklyn.config:
-              enricher.sourceSensor: reqs.per_sec
-              enricher.targetSensor: reqs.per_sec.per_node
-              transformation: average
-          - type: org.apache.brooklyn.enricher.stock.Aggregator
-            brooklyn.config:
-              enricher.sourceSensor: reqs.per_sec.windowed_30s
-              enricher.targetSensor: reqs.per_sec.windowed_30s.per_node
-              transformation: average
-
-          brooklyn.policies:
-          # resilience: if a per-node restart policy fails,
-          # just throw that node away and create a new one
-          - type: org.apache.brooklyn.policy.ha.ServiceReplacer
-
-          # and scale based on reqs/sec
-          - type: org.apache.brooklyn.policy.autoscaling.AutoScalerPolicy
-            brooklyn.config:
-              # scale based on reqs/sec (though in a real-world situation,
-              # reqs.per_sec.windowed_30s.per_node might be a better choice)
-              metric: reqs.per_sec.per_node
-
-              # really low numbers, so you can trigger a scale-out just by hitting reload a lot
-              metricUpperBound: 3
-              metricLowerBound: 1
-
-              # sustain 3 reqs/sec for 2s and it will scale out
-              resizeUpStabilizationDelay: 2s
-              # only scale down when sustained for 1m
-              resizeDownStabilizationDelay: 1m
-
-              maxPoolSize: 10
-
-        # and add a load-balancer pointing at the cluster
-        - type:           load-balancer
-          id:             load-bal
-          brooklyn.config:
-            # point this load balancer at the cluster, specifying port to forward to
-            loadbalancer.serverpool:  $brooklyn:entity("my-web-cluster")
-            member.sensor.portNumber: app.port
-            # disable sticky sessions to allow easy validation of balancing via browser refresh
-            nginx.sticky: false
-
-        brooklyn.enrichers:
-        # publish a few useful info sensors and KPI's to the root of the app
-        - type: org.apache.brooklyn.enricher.stock.Propagator
-          brooklyn.config:
-            uniqueTag:    propagate-load-balancer-url
-            producer:     $brooklyn:entity("load-bal")
-            propagating:
-            - main.uri
-        - type: org.apache.brooklyn.enricher.stock.Propagator
-          brooklyn.config:
-            uniqueTag:    propagate-reqs-per-sec
-            producer:     $brooklyn:entity("my-web-cluster")
-            propagating:
-            - reqs.per_sec
-            - reqs.per_sec.windowed_30s.per_node
-
-        location:
-          jclouds:aws-ec2:
-            # edit these (or delete if credentials specified in brooklyn.properties)
-            identity:     <REPLACE>
-            credential:   <REPLACE>
-
-            region:       eu-central-1
-            minRam:       2gb