diff --git a/content/en_aisbl_membership_faq.php b/content/en_aisbl_membership_faq.php
index c17b87e..601a817 100644
--- a/content/en_aisbl_membership_faq.php
+++ b/content/en_aisbl_membership_faq.php
@@ -14,48 +14,33 @@
 ?>
 <h1><?php print $pageTitle;?></h1>
 <ol>
-  <li><a href="#q_1">Why is the Eclipse Foundation moving to Europe?</a></li>
+  <li><a href="#q_1">Why has the Eclipse Foundation moved to Europe?</a></li>
   <li><a href="#q_2">What is the status of the Eclipse Foundation&rsquo;s move to Europe?</a></li>
   <li><a href="#q_3">What does this move mean for Members of the Foundation?</a></li>
   <li><a href="#q_4">Are the fees for membership changing?</a></li>
   <li><a href="#q_5">What does this mean for my participation in working groups?</a></li>
-  <li><a href="#q_6">Why are we changing from Solutions membership to Contributing membership? Are there other
-    changes to the classes of membership?</a></li>
-  <li><a href="#q_7">What does this move mean for Committers?</a></li>
-  <li><a href="#q_8">Which agreements will be changing? And what agreements must I execute?</a></li>
-  <li><a href="#q_9">Are there changes to any other agreements?</a></li>
-  <li><a href="#q_11">When do these changes take effect, and what steps do I need to take?</a></li>
-  <li><a href="#q_12">What are the major differences between the new Belgian Bylaws and the existing US Bylaws?</a></li>
-  <li><a href="#q_13">Have the Bylaws and Membership Agreement for the existing US organization changed?&nbsp; And
-    is there anything I have to do?</a></li>
-  <li><a href="#q_14">What are the rights and benefits of membership with respect to governance that will change as
-    a result of this restructuring?&nbsp; And do the rights of Committers change in any way?</a></li>
-  <li><a href="#q_15">I am a Committer employed by a Member Company - do I have to do anything?</a></li>
-  <li><a href="#q_16">I am a contributor to one or more Eclipse projects, do I have to do anything?</a></li>
-  <li><a href="#q_17">I have questions not listed here, who do I contact?</a></li>
-  <li><a href="#q_18">Has the address of the Eclipse Foundation changed?</a></li>
+  <li><a href="#q_6">What does this move mean for Committers?</a></li>
+  <li><a href="#q_7">Which agreements have changed? And what agreements must I execute?</a></li>
+  <li><a href="#q_8">What are the major differences between the new Belgian Bylaws and the existing US Bylaws?</a></li>
+  <li><a href="#q_9">Have the Bylaws and Membership Agreement for the existing US organization changed?</a></li>
+  <li><a href="#q_10">Why did the Solutions membership class change to Contributing membership? Are there other changes to the classes of membership?</a></li>
+  <li><a href="#q_11">What rights and benefits of membership, with respect to governance, have changed as a result of this restructuring?  And do the rights of Committers change in any way? </a></li>
+  <li><a href="#q_12">I am a Committer employed by a Member Company - do I have to do anything?</a></li>
+  <li><a href="#q_13">I am a contributor to one or more Eclipse projects, do I have to do anything?</a></li>
+  <li><a href="#q_14">I have questions not listed here, who do I contact?</a></li>
+  <li><a href="#q_15">Has the address of the Eclipse Foundation changed?</a></li>
+
 </ol>
 <p id="q_1">
-  <strong>Q. Why is the Eclipse Foundation moving to Europe?</strong>
+  <strong>Q. Why has the Eclipse Foundation moved to Europe?</strong>
 </p>
 <ol type="A">
   <li>
     <p>
-      Moving the corporate governance of Eclipse Foundation to Europe will provide global
-      stakeholders more choice for their strategic open source initiatives. We believe that more
-      choice and greater diversity will be of benefit to both the global open source communities,
-      and for the industries that rely upon and collaborate with them. The Eclipse Foundation
-      aspires to be a truly global institution, now with a new European home.&nbsp;<br /> <br /> To
-      an extent, this move is merely confirmation of the Foundation&rsquo;s current reality and
-      global growth trajectory. The Eclipse Foundation is already the largest open source
-      organization in Europe as measured in staff, projects, developers, and members. One hundred
-      seventy members and over nine hundred committers are based in Europe and we have operated our
-      subsidiary Eclipse Foundation Europe GmbH for seven years.&nbsp;<br /> <br /> By moving our
-      legal residence from the United States to Europe, our goal is to create a global institution
-      that builds on our existing membership base, active developer community, and strong
-      institutional relationships, and leverages a competitive level playing field to enable the
-      free flow of open software innovation throughout the entire world.
+    The move of the corporate governance of Eclipse Foundation to Europe has been done to provide global stakeholders more choice for their strategic open source initiatives. We believe that more choice and greater diversity will be of benefit to both the global open source communities, and for the industries that rely upon and collaborate with them. The Eclipse Foundation aspires to be a truly global institution, now with a new European home.  
     </p>
+    <p>To an extent, this move is merely confirmation of the Foundation’s current reality and global growth trajectory. The Eclipse Foundation is already the largest open source organization in Europe as measured in staff, projects, developers, and members. One hundred seventy members and over nine hundred committers are based in Europe and we have operated our subsidiary Eclipse Foundation Europe GmbH for more than seven years. </p>
+    <p>By moving our legal residence from the United States to Europe, our goal is to create a global institution that builds on our existing membership base, active developer community, and strong institutional relationships, and helps to enable the free flow of open innovation throughout the entire world.</p>
   </li>
 </ol>
 <p id="q_2">
@@ -64,17 +49,9 @@
 <ol type="A">
   <li>
     <p>
-      At the time of writing, all of the incorporation and related documents have been filed with
-      the Belgian authorities, and we are waiting for the Royal Decree which will formally create
-      our new entity, the Eclipse Foundation AISBL. This normally takes on the order of sixty days.<br />
-      <br /> In parallel, the Board of Directors of the Eclipse Foundation, Inc. have approved a
-      series of changes to the Bylaws and Membership Agreement of the existing US entity and we will
-      be seeking the approval of the membership-at-large for those changes. (More details below.)<br />
-      <br /> Once the new Belgian entity Eclipse Foundation AISBL is created and the approvals are
-      finalized to the Eclipse Foundation, Inc.&rsquo;s Bylaws and Membership Agreement, all members
-      will be required to update their membership agreement and related other
-      agreements.&nbsp;&nbsp;
+    The Eclipse Foundation AISBL has now been created as an international nonprofit association under Belgian law.  Its Board of Directors has been established, with all of the Board members of the existing Eclipse Foundation, Inc. now serving as Board members of Eclipse Foundation AISBL, as well as now having a representative from Daimler TSS who have joined the Belgian entity as a Strategic member.  Key policies and processes, including the Intellectual Property (IP) Policy, Antitrust Policy, Eclipse Foundation Development Process, etc. all remain, and have been adopted by the new Belgian organization. The existing Eclipse Foundation, Inc. continues to operate, with the existing Board in place. 
     </p>
+    <p>Going forward, companies now wishing to join the Eclipse Foundation will be directed to join the new Belgian organization. Over the coming weeks and months we will be reaching out to member organizations to have them migrate their membership to the new Belgian entity.</p>
   </li>
 </ol>
 <p id="q_3">
@@ -83,13 +60,10 @@
 <ol type="A">
   <li>
     <p>
-      In terms of the day-to-day interactions with the Eclipse Foundation, nothing will change. The
-      operations of our projects and working groups continue as is, and the IP Policy and Antitrust
-      Policy of the new entity are identical to those of the US organization.<br /> <br /> The main
-      difference is that you will soon be asked to join our new Belgian international nonprofit
-      organization, and concurrently, to resign your membership in the existing US
-      organization.&nbsp;
+    In terms of the day-to-day interactions with the Eclipse Foundation, nothing has changed. The operations of our projects and working groups continue as is, and the IP Policy and Antitrust Policy of the new entity are identical to those of the previous US organization.
     </p>
+    <p>The main difference is that you will soon be asked to join our new Belgian international nonprofit organization, and concurrently, to resign your membership in the existing US organization.</p>
+    <p>If you are an individual Committer Member you will be asked to execute the new Belgian membership agreement. We will reach out to you later this year to effect this change. There remain no fees for Committer membership.</p>
   </li>
 </ol>
 <p id="q_4">
@@ -98,24 +72,10 @@
 <ol type="A">
   <li>
     <p>
-      As part of moving to Europe, we will be restating our membership dues effective October 1,
-      2020 for both the Beligan-based Eclipse Foundation AISBL and the existing Eclipse Foundation,
-      Inc. in euros while retaining the same numeric value, e.g. if you are currently paying $20,000
-      the dues in the new organization will be 20.000&euro;. However, we do understand that this
-      represents a dues increase, and to help mitigate that for all members who renew between
-      October 1, 2020 and September 30, 2021 your euro-based membership fees will be discounted by
-      10%. So, to continue this example, if your membership fee in 2020 was $20,000, your fee will
-      be 18.000&euro; in 2021, and 20.000&euro; in 2022 and beyond.&nbsp;<br /> <br /> This modest
-      fee increase is the first in almost 15 years - we hope that members appreciate the merit of
-      stating all fees in Euros as we complete this transition.<br /> <br /> Note that working group
-      fees are not changing as a result of the move, and will remain in USD.&nbsp; Each working
-      group&rsquo;s Steering Committee, as part of its responsibilities, will evaluate whether they
-      should change their fees to be stated in euros and/or to adjust the fees based on such a
-      change.&nbsp; Should the working group choose to take this action, any change will be
-      communicated in advance of enacting the change.<br /> <br /> If you are an individual
-      Committer Member you will be asked to execute the new Belgian membership agreement. There
-      remain no fees for Committer membership.
+    In anticipation of the move to Europe, we restated our membership dues effective October 1, 2020 for both the Beligan-based Eclipse Foundation AISBL and the existing Eclipse Foundation, Inc. in euros while retaining the same numeric value, e.g. if you were previously paying $20,000 in membership fees, your dues effective October 1, 2020 are now  €20.000. To help mitigate the increase in fees resulting from the change in currency, all members who renew between October 1, 2020 and September 30, 2021 have their euro-based membership fees discounted by 10%. So, to continue this example, if your membership fee in 2020 was $20,000, your fee will be €18.000 in 2021, and €20.000 in 2022 and beyond.
     </p>
+    <p>As a reminder, this modest fee increase was the first in almost 15 years - we hope that members appreciate the merit of stating all fees in Euros as part of completing this transition.</p>
+    <p>Note that working group fees have not changed as a result of the move, and will remain in USD. Each working group’s Steering Committee, as part of its fiscal responsibilities, will evaluate whether they should change their fees to be stated in euros and/or to adjust the fees based on such a change. Should the working group choose to take this action, any change will be communicated in advance of enacting the change.</p>
   </li>
 </ol>
 <p id="q_5">
@@ -124,242 +84,84 @@
 <ol type="A">
   <li>
     <p>
-      Existing working groups will remain under the current governance structures for the time
-      being, and Members&rsquo; participation in existing working groups are not impacted by the
-      move of the overall corporate governance to Europe.&nbsp; We will, however, be asking members
-      to re-execute their Working Group Participation Agreements at the same time as they execute
-      the new Membership Agreement.&nbsp;<br /> <br /> Existing working group fees are also not
-      impacted directly by this corporate change, including that the membership fees will remain
-      stated in USD.&nbsp;<br /> <br /> All members are eligible to participate in working
-      groups.&nbsp; Going forward, new working groups will be created under Eclipse Foundation
-      AISBL.&nbsp;<br /> <br /> Existing working groups that wish to move their governance to be
-      European based may explore doing so beginning in 2021.&nbsp;&nbsp;
+    Existing working groups will remain under the current governance structures, and Members’ participation in existing working groups are not impacted by the move of the overall corporate governance to Europe. Each working group’s Steering Committee will be updating their charter to accommodate the new governance structure, but this change will not impact the operation of the working groups, including no change in scope, governance structure, program plans, or fees.
     </p>
+    <p>We will, however, be asking members to assign their Working Group Participation Agreements to the new Belgian entity at the same time as they execute the new Membership Agreement.</p>
+    <p>Existing working group fees are also not impacted directly by this corporate change, including that the membership fees will remain stated in USD.</p>
   </li>
 </ol>
 <p id="q_6">
-  <strong>Q. Why are we changing from Solutions membership to Contributing membership? Are there
-    other changes to the classes of membership?</strong>
-</p>
-<ol type="A">
-  <li>
-    <p>
-      We are changing the name of the Solutions membership level to Contributing membership to
-      better reflect the current, diverse group of organizations that make up our membership base.
-      These organizations participate and contribute to the development of the Eclipse ecosystem in
-      many ways, including, but not limited to, leading and contributing to Eclipse Foundation
-      projects, and offering products and services based on Eclipse technologies.<br /> <br /> The
-      Strategic, Committer, and Associate membership classes all remain. For completeness, we have
-      also eliminated the Strategic Consumer and Enterprise classes of membership.&nbsp; These have
-      not been used for many years, and do not reflect how our members participate.
-    </p>
-  </li>
-</ol>
-<p id="q_7">
   <strong>Q. What does this move mean for Committers?</strong>
 </p>
 <ol type="A">
   <li>
     <p>
-      In terms of the day-to-day interactions with the Eclipse Foundation, nothing will change. The
-      operations of our projects and working groups continue as is, and the Eclipse Foundation
-      Development Process, Eclipse Foundation Specification Process, and Eclipse Foundation IP
-      Policy of the new entity are identical to the current one.<br /> <br /> The main difference is
-      that your Committer Agreement will have to be updated to a new version with Eclipse Foundation
-      AISBL.&nbsp;<br /> <br /> If you are an individual committer, you will soon be asked to
-      execute a new Individual Committer Agreement.&nbsp;<br /> <br /> If you are an employee or a
-      consultant of a member company who has a Member Committer and Contributor Agreement (MCCA)
-      your employer will be asked to execute the new MCCA, and no actions will be required on your
-      part.&nbsp;
+    In terms of the day-to-day interactions with the Eclipse Foundation, nothing has changed. The operations of our projects and working groups continue as is, and the Eclipse Foundation Development Process, Eclipse Foundation Specification Process, and Eclipse Foundation IP Policy of the new entity are identical to the current one. 
     </p>
+    <p>The main difference is that for Individual Committer members, your Committer Agreement will eventually have to be updated to a new version with Eclipse Foundation AISBL; we will be contacting you to do this over the coming months.</p>
+    <p>If you are an employee or a consultant of a member company who has a Member Committer and Contributor Agreement (MCCA) your employer will be asked to execute the new MCCA, and no actions will be required on your part. </p>
   </li>
 </ol>
-<p id="q_8">
-  <strong>Q. Which agreements will be changing? And what agreements must I execute?</strong>
+<p id="q_7">
+  <strong>Q. Which agreements have changed? And what agreements must I execute?</strong>
 </p>
 <ol type="A">
-  <li>As a new organization, Eclipse Foundation AISBL will have new
-    versions of all of our legal agreements. As part of the migration,
-    we will be asking all members to join the new Belgian organization,
-    Eclipse Foundation, AISBL. Draft versions of the new Bylaws and the
-    Membership Agreement for the new Belgian Eclipse Foundation AISBL
-    can be found here:
-    <ul>
-      <li><a href="documents/eclipse-foundation-aisbl-bylaws.pdf">Eclipse Foundation AISBL Bylaws</a></li>
-      <li><a href="documents/eclipse-foundation-aisbl-membership-agreement.pdf">Eclipse Foundation AISBL Membership Agreement</a></li>
-    </ul>
-    We will asking each member to execute this new Eclipse
-    Foundation AISBL Membership Agreement, beginning in October. In
-    addition, we will be asking each member to execute versions of any
-    other agreements you currently have with Eclipse Foundation,
-    including those listed below. We will be sharing these new documents
-    over the coming few weeks.
-    <ul>
-      <li>Member Committer and Contributor Agreement</li>
-      <li>Individual Committer Agreement</li>
-      <li>Working Group Participation Agreements</li>
-    </ul>
+  <li>
+    <p>
+    As a new organization, Eclipse Foundation AISBL has new versions of all of our legal agreements. This includes new Bylaws, Membership Agreement, and Member Committer and Contributor Agreement, and Working Group Participation Agreements.  As part of the migration, we will be directly contacting all members to join the new Belgian organization, Eclipse Foundation, AISBL. For those wishing to begin the review process now, the new Bylaws and Membership Agreement for the new Belgian Eclipse Foundation AISBL can be found on our <a href="https://www.eclipse.org/org/documents/">governance page</a>.
+    </p>
+    <p>We expect the migration of members will take a few months, as we intend to contact each member directly with the specific agreements we require them to execute, and to provide a detailed explanation of the changes.</p>
+    <p>All members are free to wait until we contact you directly; however, if you have business reasons to migrate your membership to the new Belgian organization sooner, feel free to email our <a href="mailto:membership.coordination@eclipse-foundation.org">membership coordination team</a>.</p>
+  </li>
+</ol>
+
+<p id="q_8">
+  <strong>Q. What are the major differences between the new Belgian Bylaws and the existing US Bylaws?</strong>
+</p>
+<ol type="A">
+  <li>
+  <p>There are a number of differences between the two bylaws. Of course, the most significant difference is they are based on different laws. That is, the <a href="https://eclipse.org/org/documents/eclipse-foundation-be-bylaws-en.pdf">new Bylaws</a> are explicitly governed under Belgian law. Related, the Bylaws are officially defined in French, as is required by Belgian law. But the English translation may be relied upon for all matters, and all other documents including the membership agreement, etc. are all defined in English.</p>
+  <p>The new Belgian bylaws, by law, have a few very distinctive differences relating to the rights and responsibilities of the Membership At-Large. Specifically, under Belgian law, the total group of members is referred to as the General Assembly, rather than the Membership At-Large. Also as defined in Belgian law, the General Assembly must approve the Foundation’s annual budget, must select the Foundation’s auditors, and approve the Foundation’s audited financial statements.  This is a change to our current rules, which leaves these decisions with the Board of Directors. As a result, we expect to hold a minimum of two General Assembly meetings annually.</p>
+  <p>There are differences in the rights associated with Committer membership that we want to draw attention to. First, the thing that does not change is that our committers all have the ability to become Committer Members, and that our Committer Members continue to have Board representation based on exactly the same formula as today. This is significant, as over the years, this has proven to be invaluable to the health of our Foundation, and has led to the Board making much better decisions as a result of this committer representation. What is changing is that Committer members under the new Belgian bylaws do not have the right to vote in the General Assembly. As noted above, there are significantly more decisions that must be ratified by the General Assembly than under our existing rules, including approving the budget, appointing auditors, and approving the audited financial statements. Because we have significantly more Committer members than corporate members, their class of membership would be  heavily weighted for these financial decisions at the General Assembly. This weighting was appropriate in our current bylaws, as the only matters brought before the Membership At-Large were related to changes to the Bylaws and membership agreement. But given the General Assembly of the Belgian organization explicitly approves significant financial matters, it was felt these are matters better voted on by those companies that are contributing the funds.</p>
+  <p>That the General Assembly votes on financial matters is a new “feature” for the Eclipse Foundation, and is based on the requirements of Belgian law. The net result of the change as compared to the current bylaws is that Committer Members lose their ability to directly approve future changes to the Bylaws or membership agreement of Eclipse Foundation AISBL. Approvals of such future changes will, however, be voted on by the elected directors representing the Committer Members on the Board. Committer Members are encouraged to participate in General Assembly meetings, and of course their representatives on the Board continue to actively participate and contribute.</p>
+  <p>There are minor differences in the governance structure at the Board level. As defined in Belgian law, nominations to Board committees must be made by Board members, and those committees must have directors report on their work, as opposed to the Executive Director doing it on their behalf. The role of Treasurer is also defined somewhat differently, with the Treasurer reporting directly to the Board’s finance committee, as opposed to the Executive Director.</p>
+  <p>We encourage all members to review the new Bylaws and to ask further questions related to the specifics of the bylaws.</p>
   </li>
 </ol>
 
 <p id="q_9">
-  <strong>Q. Are there changes to any other agreements?</strong>
+  <strong>Q. Have the Bylaws and Membership Agreement for the existing US organization changed?</strong>
 </p>
 <ol type="A">
-  <li>Yes. In addition to the new agreements listed above for Eclipse Foundation AISBL, we are also changing the existing Bylaws
-    and Membership Agreement of the Eclipse Foundation, Inc. that all members have already executed.
-    This change is required as a result of aligning the existing US-based organization with the new
-    Belgian organization. More details about these changes can be found at: <a href="/membership/vote2020/">Eclipse Bylaw and Membership Agreement Changes 2020</a>
-    <br><br> After the creation of the Eclipse Foundation AISBL, the Eclipse Contributor Agreement
-    (&ldquo;ECA&rdquo;) will be updated to reference our new Belgian legal entity. However, existing ECAs will
-    continue to be effective.
+  <li>
+  <p>Yes. In order to accommodate the transition, both the Bylaws and the Membership Agreement for the existing US organization were modified effective October 1, 2020. These changes were approved unanimously by the Board of Directors, and were also approved by a vote of the Membership At-Large by a margin of 97%. At a high level, the changes being made are to keep the two organizations in sync with respect to classes of membership, membership fees, etc., and to ensure the governance of the US organization aligns with the new Belgian organization.</p>
+  <p>Of note, a new class of membership called Strategic Foundation Member was introduced into the bylaws of the existing US organization. By doing this, the new Belgian foundation is now an active member of the US organization, and will participate in its governance by having seats on the US organization’s Board. We would describe this as an “implementation detail”, and would be happy to provide more detail should you have questions about it. </p>
   </li>
 </ol>
 
+<p id="q_10">
+  <strong>Q. Why did the Solutions membership class change to Contributing membership? Are there other changes to the classes of membership?</strong>
+</p>
+<ol type="A">
+  <li>
+    <p>
+    We changed the name of the Solutions membership level to Contributing membership to better reflect the current, diverse group of organizations that make up our membership base. These organizations participate and contribute to the development of the Eclipse ecosystem in many ways, including, but not limited to, leading and contributing to Eclipse Foundation projects, and offering products and services based on Eclipse technologies.
+    </p>
+    <p>The Strategic, Committer, and Associate membership classes all remain. Finally, regarding what has changed, we have also eliminated the Strategic Consumer and Enterprise classes of membership. These have not been used for many years, and do not reflect how our members participate.</p>
+  </li>
+</ol>
 <p id="q_11">
-  <strong>Q. When do these changes take effect, and what steps do I need to take?&nbsp;</strong>
+  <strong>Q. What rights and benefits of membership, with respect to governance, have changed as a result of this restructuring? And do the rights of Committers change in any way?</strong>
 </p>
 <ol type="A">
   <li>
     <p>
-      Once the new Belgian based organization is created, expected in early-to-mid October, we will
-      be reaching out to all members to engage with them in supporting this transition.&nbsp;
-      Specifically, we will be asking members to re-execute each of the agreements listed above that
-      your organization has executed previously.&nbsp; We will help you with this process by
-      providing you copies of your existing agreements, and the new ones to be executed.<br /> <br />
-      Concurrent with executing these new versions of the agreements, we will be asking you to
-      execute a letter confirming the resignation of your membership in the existing US-based
-      organization.&nbsp; This formality is required, as that entity will exist for some period of
-      time, and we want to avoid having any organizations paying fees to both the current and the
-      new foundations.&nbsp;&nbsp;
+    As a result of the corporate restructuring, the changes to the rights, benefits, and obligations of membership with respect to governance are as described in the tables below.  Note that any changes introduced under the new Belgian bylaws are bolded.
     </p>
+    <p>As explained in a separate question above regarding changes included in the Belgian bylaws, the rights of Committer members has changed somewhat. Committer members are non-voting members of the General Assembly, similar to Associate members. But unlike Associate Members, Committer Members do retain representation on the Board of Directors using exactly the same formula as previously. As a result of this change, only Strategic and Contributing members are voting members of the General Assembly. This change was introduced in recognition of we have significantly more Committer members than corporate members, that would have weighted their class of membership for decisions at the General Assembly. Given the General Assembly has ultimate responsibility for the financial decisions of the Foundation, it was felt these are matters better voted on by those companies that are contributing funds. Committer Members are still encouraged to participate in General Assembly meetings, and of course their representatives on the Board continue to actively participate and contribute.</p>
   </li>
 </ol>
-<p id="q_12">
-  <strong>Q. What are the major differences between the new Belgian Bylaws and the existing US
-    Bylaws?</strong>
-</p>
-<ol type="A">
-  <li>
-    <p>
-      There are a number of differences between the two bylaws.&nbsp; Of
-      course, the most significant difference is they are based on
-      different laws.&nbsp; That is, the new Bylaws are explicitly
-      governed under Belgian law.&nbsp; Related, the Bylaws are
-      officially defined in French, as is required by Belgian law.&nbsp;
-      But the English translation may be relied upon for all matters,
-      and all other documents including the membership agreement, etc.
-      are all defined in English.<br /> <br /> The new Belgian bylaws,
-      by law, have a few very distinctive differences relating to the
-      rights and responsibilities of the membership at-large.&nbsp;
-      Specifically, under Belgian law, the total group of members is
-      referred to as the General Assembly, rather than the Membership
-      At-Large. Also as defined in Belgian law, the General Assembly
-      must approve the Foundation&rsquo;s annual budget, must select the
-      Foundation&rsquo;s auditors, and approve the Foundation&rsquo;s
-      audited financial statements.&nbsp; This is a change to our
-      current rules, which leaves these decisions with the Board of
-      Directors.&nbsp; As a result, we expect to hold a minimum of two
-      General Assembly meetings annually.&nbsp;<br /> <br /> There are
-      differences in the rights associated with Committer membership
-      that we want to draw attention to.&nbsp; First, the thing that
-      does not change is that our committers all have the ability to
-      become Committer Members, and that our Committer Members continue
-      to have Board representation based on exactly the same formula as
-      today.&nbsp; This is significant, as over the years, this has
-      proven to be invaluable to the health of our Foundation, and has
-      led to the Board making much better decisions as a result of this
-      committer representation.&nbsp; What is changing is that Committer
-      members under the new Belgian bylaws do not have the right to vote
-      in the General Assembly.&nbsp; As noted above, there are
-      significantly more decisions that must be ratified by the General
-      Assembly than under our existing rules, including approving the
-      budget, appointing auditors, and approving the audited financial
-      statements. Because we have significantly more Committer members
-      than corporate members, their class of membership would be&nbsp;
-      heavily weighted for these financial decisions at the General
-      Assembly.&nbsp; This weighting was appropriate in our current
-      bylaws, as the only matters brought before the membership at-large
-      were related to changes to the Bylaws and membership
-      agreement.&nbsp; But given the General Assembly of the Belgian
-      organization explicitly approves significant financial matters,
-      which generally are not of critical importance to our Committer
-      community, it was felt these are matters better voted on by those
-      companies that are contributing the funds.<br /> <br /> That the
-      General Assembly votes on financial matters is a new
-      &ldquo;feature&rdquo; for the Eclipse Foundation, and is based on
-      the requirements of Belgian law. The net result of the change as
-      compared to the current bylaws is that Committer Members lose
-      their ability to directly approve future changes to the Bylaws or
-      membership agreement of Eclipse Foundation AISBL. Approvals of
-      such future changes will, however, be voted on by the elected
-      directors representing the Committer Members on the Board.
-      Committer Members are encouraged to participate in General
-      Assembly meetings, and of course their representatives on the
-      Board continue to actively participate and contribute.&nbsp;<br /> <br />
-      There are minor differences in the governance structure at the
-      Board level.&nbsp; As defined in Belgian law, nominations to Board
-      committees must be made by Board members, and those committees
-      must have directors report on their work, as opposed to the
-      Executive Director doing it on their behalf.&nbsp; The role of
-      Treasurer is also defined somewhat differently, with the Treasurer
-      reporting directly to the Board&rsquo;s finance committee, as
-      opposed to the Executive Director. &nbsp;<br /> <br /> We
-      encourage all members to review the new Bylaws and to ask further
-      questions related to the specifics of the bylaws.&nbsp;
-    </p>
-  </li>
-</ol>
-<p id="q_13">
-  <strong>Q. Have the Bylaws and Membership Agreement for the existing US organization
-    changed?&nbsp; And is there anything I have to do?&nbsp;</strong>
-</p>
-<ol type="A">
-  <li>
-    <p>
-      Yes.&nbsp; In order to accommodate the transition, both the Bylaws and the Membership
-      Agreement for the existing US organization are being modified.&nbsp; At a high level, the
-      changes being made are to keep the two organizations in sync with respect to classes of
-      membership, membership fees, etc., and to ensure the governance of the US organization aligns
-      with the new Belgian organization.&nbsp;<br /> <br /> Of note, a new class of membership
-      called Eclipse Foundation member has been introduced into the bylaws of the existing US
-      organization. By doing this, the new Belgian foundation will be an active member of the US
-      organization, and will help participate in its governance by having seats on its Board. We
-      would describe this as an &ldquo;implementation detail&rdquo;, and would be happy to provide
-      more detail should you have questions about it.<br /> <br /> A more specific list of
-      additional modifications will be sent to all members in a separate document.&nbsp;<br /> <br />
-      Once again, we will stress that we need to enact these changes prior to standing up the
-      Belgian organization, and ask all members to participate in the upcoming vote to enact the
-      changes.&nbsp;&nbsp;&nbsp;
-    </p>
-  </li>
-</ol>
-<p id="q_14">
-  <strong>Q. What are the rights and benefits of membership with respect to governance that will
-    change as a result of this restructuring?&nbsp; And do the rights of Committers change in any
-    way?&nbsp;</strong>
-</p>
-<ol type="A">
-  <li>
-    <p>
-      As a result of the corporate restructuring, the changes to the rights, benefits, and
-      obligations of membership with respect to governance will be as described in the tables
-      below.&nbsp; Note that any changes introduced under the new Belgian bylaws are bolded.<br /> <br />
-      As explained in a separate question above regarding changes included in the Belgian bylaws,
-      the rights of Committer members is changing somewhat.&nbsp; Committer members are non-voting
-      members of the General Assembly, similar to Associate members. But unlike Associate Members,
-      Committer Members do retain representation on the Board of Directors using exactly the same
-      formula as today.&nbsp; This means that only Strategic and Contributing members are voting
-      members of the General Assembly.&nbsp; This change was introduced in recognition of we have
-      significantly more Committer members than corporate members, that would have weighted their
-      class of membership for decisions at the General Assembly.&nbsp; Given the General Assembly
-      has ultimate responsibility for the fiduciary decisions of the Foundation, it was felt these
-      are matters better voted on by those companies that are contributing funds.&nbsp; Committer
-      Members are still encouraged to participate in General Assembly meetings, and of course their
-      representatives on the Board continue to actively participate and contribute.&nbsp;&nbsp;
-    </p>
-  </li>
-</ol>
+
 <p>
   <strong>Strategic Member - Rights, Benefits and Obligations</strong>
 </p>
@@ -418,7 +220,7 @@
           <p>Vote on changes to the Bylaws and membership agreement</p>
         </td>
         <td>
-          <p>Board representative has vote&nbsp;</p>
+          <p>Board representative has vote</p>
         </td>
         <td>
           <p>Board representative has vote</p>
@@ -427,7 +229,7 @@
       </tr>
       <tr>
         <td>
-          <p>Participate in meetings of the membership at-large / general assembly</p>
+          <p>Participate in meetings of the Membership At-Large / General Assembly</p>
         </td>
         <td>
           <p>Voting participation in meetings</p>
@@ -490,7 +292,7 @@
         </td>
         <td>
           <p>
-            Elected representative on Board has vote<br /> &nbsp;
+            Elected representative on Board has vote
           </p>
         </td>
       </tr>
@@ -509,7 +311,7 @@
       </tr>
       <tr>
         <td>
-          <p>Participate in meetings of the membership at-large / general assembly</p>
+          <p>Participate in meetings of the Membership At-Large / General Assembly</p>
         </td>
         <td>
           <p>Voting participation in meetings</p>
@@ -586,13 +388,13 @@
       </tr>
       <tr>
         <td>
-          <p>Participate in meetings of the membership at-large / general assembly</p>
+          <p>Participate in meetings of the Membership At-Large / General Assembly</p>
         </td>
         <td>
-          <p>Voting participation in meetings</p>
+          <p><strong>Voting</strong> participation in meetings</p>
         </td>
         <td>
-          <p>Non-voting participation in meetings</p>
+          <p><strong>Non-voting</strong> participation in meetings</p>
         </td>
       </tr>
     </tbody>
@@ -655,7 +457,7 @@
           <p>Vote on changes to the Bylaws and membership agreement</p>
         </td>
         <td>
-          <p>None&nbsp;</p>
+          <p>None</p>
         </td>
         <td>
           <p>None</p>
@@ -663,7 +465,7 @@
       </tr>
       <tr>
         <td>
-          <p>Participate in meetings of the membership at-large / general assembly</p>
+          <p>Participate in meetings of the Membership At-Large / General Assembly</p>
         </td>
         <td>
           <p>Non-voting participation in meetings</p>
@@ -675,48 +477,45 @@
     </tbody>
   </table>
 </div>
-<p id="q_15">
+
+<p id="q_12">
   <strong>Q. I am a Committer employed by a Member Company - do I have to do anything?</strong>
 </p>
 <ol type="A">
   <li>
     <p>
-      That depends.&nbsp; For Committers whose employer has executed the Member Committer and
-      Contributor Agreement, then there is nothing for you to do. &nbsp; But if you have previously
-      executed an Individual Committer Agreement with the Eclipse Foundation as an individual, then
-      you will need to re-execute the new version of that agreement.<br /> <br /> In either case,
-      there is no action for you to take at this time.&nbsp; Rather, the Foundation will contact
-      either you or your employer to execute the new agreements with the Belgian organization.&nbsp;
+    That depends. For Committers whose employer has executed the Member Committer and Contributor Agreement, then there is nothing for you to do. But if you have previously executed an Individual Committer Agreement with the Eclipse Foundation as an individual, we will reach out to you when it is time to re-execute the new version of that agreement.
     </p>
+    <p>In either case, there is no action for you to take at this time. Rather, the Foundation will contact either you or your employer to execute the new agreements with the Belgian organization.</p>
   </li>
 </ol>
-<p id="q_16">
+<p id="q_13">
   <strong>Q. I am a contributor to one or more Eclipse projects, do I have to do anything?</strong>
 </p>
 <ol type="A">
   <li>
-    <p>No, you do not. The Eclipse Contributor Agreement (&ldquo;ECA&rdquo;) will be
-      updated to reference our new Belgian legal entity. However, your existing ECA will continue to
-      be effective.&nbsp;</p>
+    <p>
+    No, you do not. The Eclipse Contributor Agreement (“ECA”) has been updated to reference our new Belgian legal entity. However, your existing ECA will continue to be effective.
+    </p>
   </li>
 </ol>
-<p id="q_17">
+
+<p id="q_14">
   <strong>Q. I have questions not listed here, who do I contact?</strong>
 </p>
 <ol type="A">
   <li>
     <p>
-      Please send an email to <a href="mailto:eclipse-europe@eclipse.org">eclipse-europe@eclipse.org</a>.
+    Please send an email to <a href="mailto:eclipse-europe@eclipse.org">eclipse-europe@eclipse.org</a>.
     </p>
   </li>
 </ol>
-<p id="q_18">
+<p id="q_15">
   <strong>Q. Has the address of the Eclipse Foundation changed?</strong>
 </p>
 <ol type="A">
   <li>
-    <p>There will be a new corporate address of the new Eclipse Foundation AISBL listed on
-      the agreements. However, the mailing address for sending documents and agreements to the
-      Foundation remains 2934 Baseline Road, Suite 202, Ottawa, ON Canada.&nbsp;</p>
+    <p>The official address of the new Eclipse Foundation AISBL is now Rond Point Schuman 11 Brussels 1040 Belgium. This address will be included in all official documents and formal agreements with the Foundation.</p>
+    <p>However, the operating address for the Foundation staff and its administrative base of operations remains 2934 Baseline Road, Suite 202, Ottawa, ON Canada.</p>
   </li>
 </ol>
