diff --git a/source/bylaws.html.markdown b/source/bylaws.html.markdown
index 74c680b..401e549 100644
--- a/source/bylaws.html.markdown
+++ b/source/bylaws.html.markdown
@@ -16,111 +16,110 @@
 
 </div>
 
-# 1. Introduction
 
-1.1. This document defines the bylaws under which the Apache CloudStack project
+# 1 Introduction
+
+- 1.1
+  This document defines the bylaws under which the Apache CloudStack project
 operates. It defines the roles and responsibilities of the project, who may
 vote, how voting works, how conflicts are resolved and specifies the rules for
 specific project actions.
 
-1.2. CloudStack is a project of the Apache Software Foundation. The foundation
+- 1.2. CloudStack is a project of the Apache Software Foundation. The foundation
 holds the trademark on the name "CloudStack" and copyright on Apache code
 including the code in the CloudStack codebase. The foundation FAQ explains the
 operation and background of the foundation.
 
-1.3. CloudStack operates under a set of principles known collectively as the
+- 1.3. CloudStack operates under a set of principles known collectively as the
 "Apache Way". Those principles are: Transparency, consensus, non-affiliation,
 respect for fellow developers, and meritocracy, in no specific order.
 
-# 2. Roles and Responsibilities
+# 2 Roles and Responsibilities
 
-Apache projects define a set of roles with associated rights and
+   Apache projects define a set of roles with 
+associated rights and
 responsibilities. These roles govern what tasks an individual may perform
 within the project. The roles are defined in the following sections:
 
-2.1. Users
-
+- 2.1. Users.
 The most important participants in the project are people who use our software.
 Users can contribute to the Apache projects by providing feedback to developers
 in the form of bug reports and feature suggestions. As well, users can
 participate in the Apache community by helping other users on mailing lists and
 user support forums. Users who participate in the project through any mechanism
 are considered to be Contributors.
-
-2.2. Contributors
-
-Contributors are all of the volunteers who are contributing time, code,
+- 2.2. Contributors
+  Contributors are all of the volunteers who are contributing time, code,
 documentation, or resources to the CloudStack Project. Contributions are not
 just code, but can be any combination of documentation, testing, user support,
 code, code reviews, bug reporting, community organizing, project marketing, or
 numerous other activities that help promote and improve the Apache CloudStack
 project and community.
 
-A Contributor that makes sustained, welcome contributions to the project may be
+ A Contributor that makes sustained, welcome contributions to the project may be
 invited to become a Committer by the PMC. The invitation will be at the
 discretion of a supporting PMC member.
 
-2.3. Committers
-
-The project's Committers are responsible for the project's technical
+- 2.3. Committers
+  The project's Committers are responsible for the project's technical
 management. Committers have access to all project source control repositories.
 Committers may cast binding votes on any technical discussion regarding the
 project (or any sub-project).
 
-2.3.1. Committer access is by invitation only and must be approved by a lazy
+  - 2.3.1. Committer access is by invitation only and must be approved by a lazy
 consensus of the active PMC members.
 
-2.3.2. All Apache Committers are required to have a signed Individual
+  - 2.3.2. All Apache Committers are required to have a signed Individual
 Contributor License Agreement (ICLA) on file with the Apache Software
 Foundation. There is a Committer FAQ which provides more details on the
 requirements for Committers at Apache.
 
-2.3.3. A Committer who makes a sustained contribution to the project may be
+  - 2.3.3. A Committer who makes a sustained contribution to the project may be
 invited by the PMC to become a member of the PMC, after approval of the PMC.
 
-2.4. Project Management Committee
+- 2.4. Project Management Committee
 
-The Project Management Committee (PMC) for Apache CloudStack is responsible to
+  The Project Management Committee (PMC) for Apache CloudStack is responsible to
 the board and the ASF for the management and oversight of the Apache CloudStack
 codebase.
 
-2.4.1. The responsibilities of the PMC include:
+  - 2.4.1. The responsibilities of the PMC include:
 
-2.4.1.1. Fostering, supporting and growing the project's community.
+    - 2.4.1.1. Fostering, supporting and growing the project's community.
 
-2.4.1.2. Deciding what is distributed as products of the Apache CloudStack
+    - 2.4.1.2. Deciding what is distributed as products of the Apache CloudStack
 project. In particular all releases must be approved by the PMC.
 
-2.4.1.3. Maintaining the project's shared resources, including the codebase
+    - 2.4.1.3. Maintaining the project's shared resources, including the codebase
 repository, mailing lists, websites.
 
-2.4.1.4. Speaking on behalf of the project.
+    - 2.4.1.4. Speaking on behalf of the project.
 
-2.4.1.5. Resolving license disputes regarding products of the project.
+    - 2.4.1.5. Resolving license disputes regarding products of the project.
 
-2.4.1.6. Nominating new PMC members and committers.
+    - 2.4.1.6. Nominating new PMC members and committers.
 
-2.4.1.7. Maintaining these bylaws and other guidelines of the project.
+    - 2.4.1.7. Maintaining these bylaws and other guidelines of the project.
 
-2.4.1.8. Managing and protecting the project's trademarks and brand.
+    - 2.4.1.8. Managing and protecting the project's trademarks and brand.
 
-2.4.2. Membership of the PMC is by invitation only and must be approved by a
+   - 2.4.2. Membership of the PMC is by invitation only and must be approved by a
 lazy consensus of active PMC members.
 
-2.4.3. A PMC member is considered "emeritus" by their own declaration. An
+   - 2.4.3. A PMC member is considered "emeritus" by their own declaration. An
 emeritus member may request reinstatement to the PMC. Such reinstatement is
 subject to lazy consensus of the active PMC members.
 
-2.4.4. "Active PMC members" are all non-emeritus PMC members.
+   - 2.4.4. "Active PMC members" are all non-emeritus PMC members.
 
-2.4.4. The chair of the PMC is appointed by the ASF board. The chair is an
+   - 2.4.4. The chair of the PMC is appointed by the ASF board. The chair is an
 office holder of the Apache Software Foundation (Vice President, Apache
 CloudStack) and has primary responsibility to the board for the management of
 the projects within the scope of the CloudStack PMC. The chair reports to the
 board quarterly on developments within the CloudStack project. The chair must
 be an active PMC member.
 
-2.4.5. If the current chair of the PMC resigns, or the term of the current
+   - 2.4.5. If the current chair of the PMC resigns, or the term of the current
 chair expires, the PMC will attempt to reach consensus on a new chair through
 discussion, confirming that consensus via a vote to recommend a new chair using
 a lazy 2/3 majority voting method. In the case that consensus is not achieved,
@@ -129,7 +128,7 @@
 would be held on the cloudstack-private mailing list. The decision must be
 ratified by the Apache board.
 
-2.4.6. The role of PMC chair will have a one year term.  The intention of this
+   - 2.4.6. The role of PMC chair will have a one year term.  The intention of this
 term is to allow for a rotation of the role amongst the PMC members.  This
 intention does not prohibit the PMC from selecting the same chair to serve
 consecutive terms.
@@ -139,205 +138,205 @@
 This section defines how voting is performed, the types of approvals, and which
 types of decision require which type of approval.
 
-3.1. Voting
+- 3.1. Voting
 
-3.1.1. Decisions regarding the project are made by votes on the primary project
+  - 3.1.1. Decisions regarding the project are made by votes on the primary project
 development mailing list (dev@cloudstack.apache.org). Where necessary, PMC
 voting may take place on the private CloudStack PMC mailing list. Votes are
 clearly indicated by subject line starting with \[VOTE\]. Votes may contain
 multiple items for approval and these should be clearly separated. Voting is
 carried out by replying to the vote mail.
 
-3.1.2. Voting may take four flavors:
+  - 3.1.2. Voting may take four flavors:
 
-3.1.2.1. \+1 "Yes," "Agree," or "the action should be performed." In general,
+    - 3.1.2.1. \+1 "Yes," "Agree," or "the action should be performed." In general,
 this vote also indicates a willingness on the behalf of the voter in "making it
 happen"
 
-3.1.2.2. \+0 This vote indicates a willingness for the action under
+    - 3.1.2.2. \+0 This vote indicates a willingness for the action under
 consideration to go ahead. The voter, however will not be able to help.
 
-3.1.2.3. \-0 This vote indicates that the voter does not, in general, agree
+    - 3.1.2.3. \-0 This vote indicates that the voter does not, in general, agree
 with the proposed action but is not concerned enough to prevent the action
 going ahead.
 
-3.1.2.4. \-1 This is a negative vote. On issues where consensus is required,
+    - 3.1.2.4. \-1 This is a negative vote. On issues where consensus is required,
 this vote counts as a veto if binding. All vetoes must contain an explanation
 of why the veto is appropriate. Vetoes with no explanation are void. It may
 also be appropriate for a \-1 vote to include an alternative course of action.
 
-3.1.3. All participants in the CloudStack project are encouraged to show their
+  - 3.1.3. All participants in the CloudStack project are encouraged to show their
 agreement with or against a particular action by voting. For technical
 decisions, only the votes of active committers are binding. Non-binding votes
 are still useful for those with binding votes to understand the perception of
 an action in the wider CloudStack community. For PMC decisions, only the votes
 of PMC members are binding.
 
-3.1.4. Voting can also be applied to changes made to the CloudStack codebase.
+  - 3.1.4. Voting can also be applied to changes made to the CloudStack codebase.
 These typically take the form of a veto (-1) in reply to the commit message
 sent when the commit is made.
 
-3.1.5. Non-binding \-1 votes are not considered to be vetos for any decision.
+  - 3.1.5. Non-binding \-1 votes are not considered to be vetos for any decision.
 
-3.2. Approvals
+- 3.2. Approvals
 
-There are three types of approvals that can be sought. Section 3.4 describes
+    There are three types of approvals that can be sought. Section 3.4 describes
 actions and types of approvals needed for each action.
 
-3.2.1. Lazy Consensus - Lazy consensus requires 3 binding \+1 votes and no
+  - 3.2.1. Lazy Consensus - Lazy consensus requires 3 binding \+1 votes and no
 binding \-1 votes.
 
-3.2.2. Lazy Majority - A lazy majority vote requires 3 binding \+1 votes and
+  - 3.2.2. Lazy Majority - A lazy majority vote requires 3 binding \+1 votes and
 more binding \+1 votes than binding \-1 votes.
 
-3.2.3. Lazy 2/3 Majority - Lazy 2/3 majority votes requires at least 3 binding
+  - 3.2.3. Lazy 2/3 Majority - Lazy 2/3 majority votes requires at least 3 binding
 votes and twice as many binding \+1 votes as binding \-1 votes.
 
-3.3. Vetoes
+- 3.3. Vetoes
 
-3.3.1. Vetoes are only possible in a lazy consensus vote.
+  - 3.3.1. Vetoes are only possible in a lazy consensus vote.
 
-3.3.2. A valid, binding veto cannot be overruled. If a veto is cast, it must be
+  - 3.3.2. A valid, binding veto cannot be overruled. If a veto is cast, it must be
 accompanied by a valid reason explaining the reasons for the veto. The validity
 of a veto, if challenged, can be confirmed by anyone who has a binding vote.
 This does not necessarily signify agreement with the veto - merely that the
 veto is valid.
 
-3.3.3. If you disagree with a valid veto, you must lobby the person casting the
+  - 3.3.3. If you disagree with a valid veto, you must lobby the person casting the
 veto to withdraw their veto. If a veto is not withdrawn, any action that has
 been vetoed must be reversed in a timely manner.
 
-3.4. Actions
+- 3.4. Actions
 
-This section describes the various actions which are undertaken within the
+  This section describes the various actions which are undertaken within the
 project, the roles that have the right to start a vote on the action, the
 corresponding approval required for that action and those who have binding
 votes over the action.
 
-3.4.1. Technical Decisions
+  - 3.4.1. Technical Decisions 
 
-A technical decision is any decision that involves changes to the source code
+    - A technical decision is any decision that involves changes to the source code
 that we distribute in our official releases.
 
-Technical decisions should normally be made by the entire community using
+    - Technical decisions should normally be made by the entire community using
 discussion-lead consensus gathering, and not through formal voting.
 
-Technical decisions must be made on the project development mailing list.
+    - Technical decisions must be made on the project development mailing list.
 
-During the consensus gathering process, technical decisions may be vetoed by
+    - During the consensus gathering process, technical decisions may be vetoed by
 any Committer with a valid reason.
 
-If a formal vote is started for a technical decision, the vote will be held as
+    - If a formal vote is started for a technical decision, the vote will be held as
 a lazy consensus of active committers.
 
-Any user, contributor, committer, or PMC member can initiate a technical
+    - Any user, contributor, committer, or PMC member can initiate a technical
 decision making process.
 
-3.4.2. Non-Technical Decisions
+  - 3.4.2. Non-Technical Decisions
 
-A non-technical decisions is any decision that does not involve changes to the
+    - A non-technical decisions is any decision that does not involve changes to the
 source code that we distribute in our official releases (excluding questions of 
 trademark usage).
 
-Non-technical decisions should normally be made by the entire community using
+    - Non-technical decisions should normally be made by the entire community using
 discussion-lead consensus-building, and not through formal voting.
 
-Non-technical decisions can be made on whichever project mailing list is most
+    - Non-technical decisions can be made on whichever project mailing list is most
 appropriate.
 
-Non-technical decisions cannot be vetoed, but if there is strong opposition
+    - Non-technical decisions cannot be vetoed, but if there is strong opposition
 a formal vote can be used to resolve the dispute.
 
-If a formal vote is started for a non-technical decision, the vote will be held
+    - If a formal vote is started for a non-technical decision, the vote will be held
 as a lazy 2/3 majority of active committers.
 
-Any user, contributor, committer, or PMC member can initiate a non-technical
+    - Any user, contributor, committer, or PMC member can initiate a non-technical
 decision making process.
 
-3.4.3. Release Plan
+  - 3.4.3. Release Plan
 
-Defines the timetable and work items for a release. The plan also nominates a
+    - Defines the timetable and work items for a release. The plan also nominates a
 Release Manager.
 
-A lazy majority of active committers is required for approval.
+     - A lazy majority of active committers is required for approval.
 
-Any active committer or PMC member may call a vote. The vote must occur on the
+     - Any active committer or PMC member may call a vote. The vote must occur on the
 project development mailing list.
 
-3.4.4. Product Release
+  - 3.4.4. Product Release
 
-When a release of one of the project's products is ready, a vote is required to
+    - When a release of one of the project's products is ready, a vote is required to
 accept the release as an official release of the project.
 
-Lazy Majority of active PMC members is required for approval.
+    - Lazy Majority of active PMC members is required for approval.
 
-Any active committer or PMC member may call a vote. The vote must occur on the
+    - Any active committer or PMC member may call a vote. The vote must occur on the
 project development mailing list.
 
-3.4.5. Adoption of New Codebase
+  - 3.4.5. Adoption of New Codebase
 
-When the codebase for an existing, released product is to be replaced with an
+    - When the codebase for an existing, released product is to be replaced with an
 alternative codebase. If such a vote fails to gain approval, the existing code
 base will continue.
 
-This also covers the creation of new sub-projects within the project.
+    - This also covers the creation of new sub-projects within the project.
 
-Lazy 2/3 majority of active PMC members.
+    - Lazy 2/3 majority of active PMC members.
 
-Any active committer or PMC member may call a vote. The vote must occur on the
+    - Any active committer or PMC member may call a vote. The vote must occur on the
 project development mailing list.
 
-3.4.6. New Committer
+  - 3.4.6. New Committer
 
-When a new committer is proposed for the project.
+    - When a new committer is proposed for the project.
 
-Lazy consensus of active PMC members.
-
-Any active PMC member may call a vote. The vote must occur on the PMC private
+    - Lazy consensus of active PMC members.
+ 
+    - Any active PMC member may call a vote. The vote must occur on the PMC private
 mailing list.
 
-3.4.7. New PMC Member
+  - 3.4.7. New PMC Member
 
-When a committer is proposed for the PMC.
+    - When a committer is proposed for the PMC.
 
-Lazy consensus of active PMC members.
+    - Lazy consensus of active PMC members.
 
-Any active PMC member may call a vote. The vote must occur on the PMC private
+    - Any active PMC member may call a vote. The vote must occur on the PMC private
 mailing list.
 
-3.4.8. Committer Removal
+  - 3.4.8. Committer Removal
 
-When removal of commit privileges is sought. Note: Such actions will also be
+    - When removal of commit privileges is sought. Note: Such actions will also be
 referred to the ASF board by the PMC chair
 
-Lazy 2/3 majority of active PMC members (excluding the committer in question if
+    - Lazy 2/3 majority of active PMC members (excluding the committer in question if
 a member of the PMC).
 
-Any active PMC member may call a vote. The vote must occur on the PMC private
+    - Any active PMC member may call a vote. The vote must occur on the PMC private
 mailing list.
 
-3.4.9. PMC Member Removal
+  - 3.4.9. PMC Member Removal
 
-When removal of a PMC member is sought. Note: Such actions will also be
+    - When removal of a PMC member is sought. Note: Such actions will also be
 referred to the ASF board by the PMC chair.
 
-Lazy 2/3 majority of active PMC members (excluding the member in question)
+    - Lazy 2/3 majority of active PMC members (excluding the member in question)
 
-Any active PMC member may call a vote. The vote must occur on the PMC private
+    - Any active PMC member may call a vote. The vote must occur on the PMC private
 mailing list.
 
-3.4.10. Modifying Bylaws
+  - 3.4.10. Modifying Bylaws
 
-Modifying this document.
+    - Modifying this document.
 
-Lazy majority of active PMC members
+    - Lazy majority of active PMC members
 
-Any active committer or PMC member may call a vote. The vote must occur on the
+    - Any active committer or PMC member may call a vote. The vote must occur on the
 project development mailing list.
 
-3.4.11. Trademark Usage Approvals
+  - 3.4.11. Trademark Usage Approvals
 
-Our project maintains a formal Trademark Usage Guidelines document, which
+    Our project maintains a formal Trademark Usage Guidelines document, which
 serves as a additive reference to the Apache Software Foundation's trademark
 policies. The Apache CloudStack PMC has had approval authority delegated to it
 for requests from third parties to use our trademarks. It is the PMC's
@@ -345,41 +344,39 @@
 are in compliance with both the project and the foundation's trademark
 usage policies.
 
-The CloudStack Trademark Guidelines specify how a requestor is expected to
+    The CloudStack Trademark Guidelines specify how a requestor is expected to
 request permission for usage of the trademarks.
 
-The process of approval will typically be as follows:
+    The process of approval will typically be as follows:
+    * A request is made that includes the required information for the PMC to make a decision.
 
-* A request is made that includes the required information for the PMC to make 
-a decision.
-* A PMC member reviews the request and provides an initial acknowledgement 
-response to the requester.
-* If no PMC member raises a concern after 72 hours, the requester can assume 
-approval.
+    * A PMC member reviews the request and provides an initial acknowledgement response to the requester.
 
-In situations where a concern is raised, the PMC member is expected inform the
+    * If no PMC member raises a concern after 72 hours, the requester can assume approval.
+
+   - In situations where a concern is raised, the PMC member is expected inform the
 requster that there is some discussion that needs to be had prior to approval
-from the PMC.  This notice serves to end the assumed approval after 72 hours.  
+from the PMC.  This notice serves to end the assumed approval after 72 hours.
 
-After raising a concern, the PMC member in question is required to forward the
+     After raising a concern, the PMC member in question is required to forward the
 concern to private@cloudstack.apache.org, explaining the issue that they have
 with the request.  The use of private@cloudstack.apache.org for discussing the
 request is to allow the PMC to deliberate without confusing the requester, and
 to ensure that a formal approval or denial is clear at the end of the
 discusion.
 
-The PMC will then attempt to achieve consensus on how the request for approval
+     The PMC will then attempt to achieve consensus on how the request for approval
 will be answered.  The requester may be asked for more information to help the
 PMC make a decision, may be asked to make a change to the proposal in order to
 gain approval, or may have their request be denied.
 
-If consensus is not achieved within the PMC by discussion, then a formal VOTE
+     If consensus is not achieved within the PMC by discussion, then a formal VOTE
 can be called as a Lazy 2/3 majority of voting PMC members.
 
-Votes related to trademark usage approvals may be performed on the
+     Votes related to trademark usage approvals may be performed on the
 private@cloudstack.apache.org mailing list.
 
-3.5. Voting Timeframes
+- 3.5. Voting Timeframes
 
-Formal votes are open for a period of at least 72 hours to allow all active
+  Formal votes are open for a period of at least 72 hours to allow all active
 voters time to consider the vote.
diff --git a/source/cloudstack-faq.html.markdown b/source/cloudstack-faq.html.markdown
deleted file mode 100644
index d8e9ae4..0000000
--- a/source/cloudstack-faq.html.markdown
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: Apache CloudStack FAQ
----
-
-<div class="row">
-
-<div class="col-lg-12">
-
-<div class="page-header">
-
-<h1 id="indicators">Apache CloudStack: FAQ</h1>
-
-</div>
-
-</div>
-
-</div>
-
-This page is for Frequently Asked Questions (FAQ) having to do with Apache CloudStack as a project and its use.
-
-Have a question that's not answered here? You might want to ask on the [CloudStack users mailing list](/mailing-lists.html). 
-
-- [What is Apache CloudStack?](/cloudstack-faq.html#what)
-- [Can I create my own private templates?](/cloudstack-faq.html#private)
-- [How are users, accounts, and domains handled in CloudStack?](/cloudstack-faq.html#users)
-
-### What is Apache CloudStack?
-
-<a name="what"> </a>
-
-Apache CloudStack is a complete software suite for creating Infrastructure as a Service (IaaS) clouds. Target environments include service providers and enterprises.
-
-- The Apache CloudStack platform enables service providers to set up an on-demand, elastic cloud computing service. It enables a utility computing service by allowing service providers to offer self-service virtual machine instances, storage volumes, and networking configurations over the Internet.
-- The Apache CloudStack platform enables enterprises to set up a private cloud for use by their own employees. The current generation of virtualization infrastructure targets enterprise IT departments who manage virtual machines the same way they would manage physical machines. The Apache CloudStack platform, on the other hand, enables self-service of virtual machines by users outside of the IT department. 
-- As an open source IaaS, Apache CloudStack is available to individuals and organizations that wish to study and implement an IaaS for personal, educational, and/or production use.
-
-The CloudStack platform includes the Management Server and extensions to industry-standard hypervisor software (*e.g.* XenServer, vSphere, KVM) installed on Hosts running in the cloud. The Management Server is deployed on a farm of management servers. The administrator provisions resources (Hosts, storage devices, IP addresses, etc.) into the Management Server and the Management Server manages those resources. The Management server presents web interfaces to end users and administrators that enable them to take actions on some or all of their instances in the IaaS cloud.
-
-### Can I create my own private templates?
-
-<a name="private"> </a>
-
-Yes. Every template has a privacy level associated with it. Privacy levels include:</a>
-
-- **Public**: The template is available to all users in the zone.
-- **Private**: The template is available only to its owner. A user can make her private templates available to specific users.
-
-Administrators and end users can add templates to the system. Users can see the template owner when viewing the template.
-
-(Templates define the base OS image that will be used when a guest is first booted. For example, a template might be a 64-bit version of CentOS 5.3.)
-
-### How are users, accounts, and domains handled in CloudStack?
-
-<a name="users"> </a>
-
-Apache CloudStack users are assigned accounts. An account is typically a customer of the service provider or a department in a large organization. Accounts are the unit of isolation in the cloud. Accounts are grouped by domains. Domains usually contain accounts that have some logical relationship to each other and a set of delegated administrators with some authority over the domain and its subdomains. For example, a service provider with several resellers could create a domain for each reseller.
-
-Multiple users can exist in an account.  Users are like aliases in the account.  Users in the same account are not isolated from each other.  Most installations need not surface the notion of users; they just have one user per account.
diff --git a/source/loader.gif b/source/images/loader.gif
similarity index 100%
rename from source/loader.gif
rename to source/images/loader.gif
Binary files differ
diff --git a/source/layouts/layout.erb b/source/layouts/layout.erb
index fe54454..dea91e3 100644
--- a/source/layouts/layout.erb
+++ b/source/layouts/layout.erb
@@ -60,7 +60,7 @@
                 <li><a tabindex="-1" href="https://blogs.apache.org/cloudstack/" target="_blank">Blog<span class="glyphicon glyphicon-share-alt pull-right"></span></a></li>
                 <li><a tabindex="-1" href="history.html">History</a></li>
                 <li><a tabindex="-1" href="features.html">Features</a></li>
-                <li><a tabindex="-1" href="cloudstack-faq.html">FAQ</a></li>
+                <li><a tabindex="-1" href="bylaws.html">Community Bylaws</a></li>
                 <li><a tabindex="-1" href="who.html">Who We Are</a></li>
                 <li><a tabindex="-1" href="security.html">Security</a></li>
               </ul>
