anchor.diff:                          </span>
                       <% else # subgroups, so we need to put multiple  sections with items (used for CybOX Objects list) %>
                           <% contents.each do |subgroup_name, subgroup| %>
  -                            <h4 class="text-warning"><%= subgroup_name %></h4>
  -                            <span data-key="<%= subgroup_name %>">
  +                            <h4 class="text-warning">
  +                                <%= subgroup_name %>
  +                                <small>
  +                                    <button id="group-btn-<%= subgroup_name.gsub(' ', '_') %>" class="btn btn-info btn-xs collapse-group-btn" data-toggle="collapse" data-target="span[data-key='<%= subgroup_name %>']"><span class="glyphicon glyphicon-plus"></span></button>
  +                                </small>
  +                            </h4>
  +                            <span class="group-section collapse" data-key="<%= subgroup_name %>">
                                   <span data-key="constructs">
                                       <% subgroup['constructs'].each do |key, construct| %>
                                           <%= render partial: "profile/shared/construct_group", locals: {construct: construct, key: key} %>
  
positive.code: <script type="text/javascript">
      var active = undefined;
      var profile = JSON.parse('<%= profile_modifying.to_json.html_safe %>')
      function getKeySet(currNode) {
          var keyset = [];
          while (!currNode.attr("data-root-key")) {
  
negative.code:             </p>
              <hr/>
              <% profile_modifying.each do |title, contents| %>
                  <div id="<%= title.gsub(' ', '_') %>" style="display: none;" data-root-key="<%= title %>">
                      <h2 class="text-info"><%= title %></h2>
                      <% if contents.has_key?("constructs") %>
                          <span data-key="constructs">
  