diff --git a/.gitignore b/.gitignore
index ba0cef7..8856607 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2021 Open Networking Foundation <info@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
 venv-docs
 _build
 .vscode
diff --git a/.gitreview b/.gitreview
index 8f88f21..e2e17b5 100644
--- a/.gitreview
+++ b/.gitreview
@@ -1,6 +1,5 @@
 # SPDX-FileCopyrightText: 2020 Open Networking Foundation <info@opennetworking.org>
-#
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 [gerrit]
 host=gerrit.opencord.org
diff --git a/.reuse/dep5 b/.reuse/dep5
new file mode 100644
index 0000000..18ea2e4
--- /dev/null
+++ b/.reuse/dep5
@@ -0,0 +1,9 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+
+Files: VERSION images/* *.png *.svg *.jpg dict.txt
+Copyright: 2021 Open Networking Foundation
+License: Apache-2.0
+
+Files: _static/fonts/Inconsolata*.ttf
+Copyright: 2006 Raph Levien
+License: OFL-1.1
diff --git a/Apache-2.0.txt b/Apache-2.0.txt
deleted file mode 100644
index d645695..0000000
--- a/Apache-2.0.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed 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.
diff --git a/LICENSES/Apache-2.0.txt b/LICENSES/Apache-2.0.txt
new file mode 100644
index 0000000..137069b
--- /dev/null
+++ b/LICENSES/Apache-2.0.txt
@@ -0,0 +1,73 @@
+Apache License
+Version 2.0, January 2004
+http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
+
+"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
+
+     (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and
+
+     (b) You must cause any modified files to carry prominent notices stating that You changed the files; and
+
+     (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
+
+     (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
+
+     You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!)  The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed 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.
diff --git a/LICENSES/OFL-1.1.txt b/LICENSES/OFL-1.1.txt
new file mode 100644
index 0000000..6fe84ee
--- /dev/null
+++ b/LICENSES/OFL-1.1.txt
@@ -0,0 +1,43 @@
+SIL OPEN FONT LICENSE
+
+Version 1.1 - 26 February 2007
+
+PREAMBLE
+
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting — in part or in whole — any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/Makefile b/Makefile
index 9f3cc5c..ae3fa4f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2021 Open Networking Foundation <info@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
 # Makefile for Sphinx documentation
 
 # use bash for pushd/popd, and to fail quickly
@@ -12,7 +15,7 @@
 # name of python virtualenv that is used to run commands
 VENV_NAME      := venv-docs
 
-.PHONY: help test lint doc8 reload Makefile prep
+.PHONY: help Makefile test doc8 dict-check sort-dict license clean clean-all
 
 # Put it first so that "make" without argument is like "make help".
 help: $(VENV_NAME)
@@ -21,24 +24,31 @@
 
 # Create the virtualenv with all the tools installed
 $(VENV_NAME):
-	python3 -m venv $(VENV_NAME) ;\
+	python3 -m venv $@ ;\
   source $@/bin/activate ;\
   pip install -r requirements.txt
 
-# automatically reload changes in browser as they're made
-reload: $(VENV_NAME)
-	source $</bin/activate ; set -u ;\
-  sphinx-reload $(SOURCEDIR)
-
 # lint and link verification. linkcheck is part of sphinx
-test: lint spelling linkcheck
+test: license doc8 dict-check spelling linkcheck
 
-lint: doc8
-
-doc8: $(VENV_NAME) | $(OTHER_REPO_DOCS)
+doc8: $(VENV_NAME)
 	source $</bin/activate ; set -u ;\
-  doc8 --max-line-length 119 \
-  $$(find . -name \*.rst ! -path "*venv*" ! -path "*vendor*" ! -path "*repos*" )
+  doc8 --ignore-path $< --ignore-path _build --ignore-path LICENSES --max-line-length 119
+
+# Words in dict.txt must be in the correct alphabetical order and must not duplicated.
+dict-check: sort-dict
+	@set -u ;\
+	git diff --exit-code dict.txt && echo "dict.txt is sorted" && exit 0 || \
+	echo "dict.txt is unsorted or needs to be added to git index" ; exit 1
+
+sort-dict:
+	@sort -u < dict.txt > dict_sorted.txt
+	@mv dict_sorted.txt dict.txt
+
+license: $(VENV_NAME)
+	source $</bin/activate ; set -u ;\
+  reuse --version ;\
+  reuse --root . lint
 
 # clean up
 clean:
@@ -48,13 +58,13 @@
 	rm -rf $(VENV_NAME)
 
 # build multiple versions
-multiversion: $(VENV_NAME) Makefile | prep $(OTHER_REPO_DOCS)
+multiversion: $(VENV_NAME) Makefile
 	source $</bin/activate ; set -u ;\
   sphinx-multiversion "$(SOURCEDIR)" "$(BUILDDIR)/multiversion" $(SPHINXOPTS)
 	cp "$(SOURCEDIR)/_templates/meta_refresh.html" "$(BUILDDIR)/multiversion/index.html"
 
 # Catch-all target: route all unknown targets to Sphinx using the new
 # "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: $(VENV_NAME) Makefile | $(OTHER_REPO_DOCS) $(STATIC_DOCS)
+%: $(VENV_NAME) Makefile
 	source $</bin/activate ; set -u ;\
   $(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/README b/README
new file mode 100644
index 0000000..2242cf7
--- /dev/null
+++ b/README
@@ -0,0 +1,20 @@
+.. SPDX-FileCopyrightText: 2021 Open Networking Foundation <info@opennetworking.org>
+   SPDX-License-Identifier: Apache-2.0
+
+SD-Fabric Docs
+==============
+
+This site contains Sphinx format documentation for the SD-Fabric project.
+Please see the `Sphinx section of ONF Docs
+<https://docs.opennetworking.org/docs/sphinx.html>`_ for instructions on how to
+contribute to this documentation.
+
+Code of Conduct
+---------------
+
+We expect all ONF employees, member companies, and participants to abide by our
+`Code of Conduct <https://docs.opennetworking.org/policies/conduct.html>`_
+
+If you are being harassed, notice that someone else is being harassed, or have
+any other concerns involving someone’s welfare, please notify a member of the
+ONF team or email conduct@opennetworking.org.
diff --git a/_static/css/rtd_theme_mods.css b/_static/css/rtd_theme_mods.css
index e449bde..6ba1e1e 100644
--- a/_static/css/rtd_theme_mods.css
+++ b/_static/css/rtd_theme_mods.css
@@ -1,17 +1,7 @@
 /*
- * Copyright 2019-present Open Networking Foundation
- *
- * Licensed 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.  */
+ * SPDX-FileCopyrightText: 2021 Open Networking Foundation <info@opennetworking.org>
+ * SPDX-License-Identifier: Apache-2.0
+*/
 
 /* Don't restrict content width on the RTD theme
  * from: https://stackoverflow.com/a/32898444 */
diff --git a/conf.py b/conf.py
index 9fa6e27..3c7f2a8 100644
--- a/conf.py
+++ b/conf.py
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2021 Open Networking Foundation <info@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
 # -*- coding: utf-8 -*-
 #
 # Configuration file for the Sphinx documentation builder.
@@ -71,6 +74,10 @@
 # inlcude only the branches matching master and aether-*
 smv_branch_whitelist = r'^(master|sdcore-.*)$'
 
+# Don't include any tags - smv docs say you can put None here, but that is broken
+# https://github.com/Holzhaus/sphinx-multiversion/issues/47
+smv_tag_whitelist = r'notags'
+
 # include all remote branches
 smv_remote_whitelist = r'^.*$'
 
@@ -100,10 +107,11 @@
         '*/LICENSE.md',
         '*/vendor',
         '.DS_Store',
+        'README',
         'Thumbs.db',
         '_build',
-        'venv-docs',
         'requirements.txt',
+        'venv-docs',
 ]
 
 # The name of the Pygments (syntax highlighting) style to use.
@@ -254,6 +262,8 @@
 
 intersphinx_mapping = {
     'sphinx': ('https://www.sphinx-doc.org/en/master', None),
+    'aether': ('https://docs.aetherproject.org/master', None),
+    'onf': ('https://docs.opennetworking.org/', None),
     'sysapproach5g': ('https://5g.systemsapproach.org/', None),
     'sysapproachnet': ('https://book.systemsapproach.org/', None),
     'sysapproachsdn': ('https://sdn.systemsapproach.org/', None),
diff --git a/dict.txt b/dict.txt
index 6913ce1..1d20bd1 100644
--- a/dict.txt
+++ b/dict.txt
@@ -1,201 +1,200 @@
-configmap
-gNBSim
-eb
 152a5eb
-omecproject
-epc
-bess
-pfcpiface
-webconsole
-equipments
-api
+3gpp
+AMF
 APIs
-testcases
-Nighly
-Subnet
-gc
-Rscript
-orchestrator
-Grafana
-eNBID
-macroENB
-webhooks
-func
-scalability
-Speedtest
-SupportedTAs
-pcaps
-pcap
-tcp
-deregistration
-dl
-ul
-ng
-qa
+AUSF
+Aether
+AiaB
+Analytics
+Auth
+De
+Deregister
+Deregistration
+Dockerfile
+Downlink
+GC
+Gerrit
+Gi
 Github
+Grafana
+Gx
+HSS
+Haswell
+Homebrew
+IDmap
+Keepalive
+Kubernetes
 LTE
+MME
+Mbps
+Minikube
+NRF
+NSSF
+Namf
+Nausf
+Nighly
+Nnrf
+Nnssf
+Nonstandalone
+Npcf
+Nsmf
+Nudm
+ONF
+PCF
+PCRF
+PFCP
+QoS
+Reachability
+Resynchronization
+RoC
+Rscript
+SD-Core
+SMF
+SPGW
+SoR
+Speedtest
+Subnet
+SupportedTAs
+Sxab
+Testpod
+UDM
+UDR
+Ue
 Wireshark
+Xn
+aether
+aetherproject
+amf
+ap
+api
+apis
+apn
+ausf
+behaviour
+bess
+bitrate
+cd
+conf
+config
+configPod
+configmap
+configs
+configurability
+dataplane
+deregistration
+dev
+disaggregated
 disaggregation
-natively
-onpremises
-instantiation
+dl
+dnn
+dns
+downlink
+eNB
+eNBID
+eNBs
+eNodeB
+eb
+epc
+equipments
+func
+gNB
+gNBSim
+gNBs
+gNodeB
+gNodeBs
+gc
+gerrit
+gnb
+gnbsim
+gpp
+grpc
+hss
+hssdb
 hyperscale
 hyperscaler
-Nonstandalone
-latencies
+iUPF
+imsis
+instantiation
+iot
+ip
 jitter
-verifiably
-GC
-configurability
-performant
-scalable
-disaggregated
-pre
-dataplane
-prometheus
-ap
-apis
-Gx
-Sxab
-Resynchronization
-Aether
-Dockerfile
-ONF
-SD-Core
-dev
-hssdb
+json
+latencies
+macroENB
+mbr
+mcc
+menlo
+microservice
+miniKube
+minikube
+mme
+mnc
+mtu
+myvalues
+namespace
+natively
+ng
+nrf
+nssf
 omec
+omecproject
+onf
+onpremises
+opencord
+orchestrator
 patchset
 patchsets
+pcap
+pcaps
+pcf
+pcrf
+pcrfdb
+performant
+pfcp
+pfcpUdp
+pfcpiface
+plmn
+pre
+prometheus
+qa
+qos
+ransim
 reStructuredText
 repo
 repos
-sdcore
-unsuffixed
-virtualenv
-MME
-SPGW
-spgwc
-HSS
-hss
-PCRF
-AMF
-SMF
-NRF
-PCF
-AUSF
-NSSF
-UDM
-UDR
-PFCP
-eNB
-gNB
-simapp
-testPod
-3gpp
-Downlink
-Keepalive
-grpc
-mme
-spgw
-pcrf
-smf
-amf
-nrf
-nssf
-pcf
-udm
-udr
-ausf
-config
-configPod
-gpp
-pcrfdb
-Deregistration
-Analytics
-gNodeB
-eNodeB
-iUPF
-tunnelling
-microservice
-QoS
-eNBs
-gNBs
-Testpod
-behaviour
-miniKube
-smfcfg
-yaml
-uerouting
-pfcpiface
-conf
-upf
-json
-smftest
-De
-testpod
-Minikube
-Deregister
-ransim
-Ue
-mnc
-mcc
-dnn
-ue-dnn-qos
-qos
-menlo
-imsis
-ue
-mbr
-uplink
-downlink
-iot
-sst
-sd
-ip
-bitrate
-dns
-Mbps
-plmn
-gnb
-tac
-gNodeBs
-RoC
-mtu
-aetherproject
-Reachability
-SoR
-IDmap
-Auth
-Nnssf
-Nsmf
-Npcf
-Nnrf
-Nudm
-Nausf
-Namf
-Gi
-Kubernetes
-myvalues
-namespace
-webui
-runtime
-retransmissions
 retransmission
-onf
-pfcp
-pfcpUdp
+retransmissions
+runtime
+scalability
+scalable
+sd
+sdcore
+simapp
+smf
+smfcfg
+smftest
+spgw
+spgwc
+sst
+tac
+tcp
+testPod
+testcases
+testpod
+tunnelling
+udm
 udp
-cd
-minikube
-Homebrew
-Xn
-AiaB
-Haswell
-Gerrit
-gerrit
-aether
-opencord
-configs
-gnbsim
-apn
+udr
+ue
+ue-dnn-qos
+uerouting
+ul
+unsuffixed
+upf
+uplink
+verifiably
+virtualenv
+webconsole
+webhooks
+webui
+yaml
diff --git a/index.rst b/index.rst
index c2787cb..1d347f2 100644
--- a/index.rst
+++ b/index.rst
@@ -2,13 +2,10 @@
    SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
    SPDX-License-Identifier: Apache-2.0
 
+SD-Core
+=======
 
-.. image:: _static/sdcore-logo.svg
-   :width: 400px
-   :align: center
-
-
-The SD-Core™ project is a 4G/5G disaggregated mobile core optimized for public
+The SD-Core project is a 4G/5G disaggregated mobile core optimized for public
 cloud deployment in concert with distributed edge clouds and is ideally suited
 for carrier and private enterprise 5G networks. It exposes standard 3GPP interfaces
 enabling use of SD-Core as a conventional mobile core.
@@ -107,11 +104,3 @@
 
    release/1*
    release/process.rst
-
-.. toctree::
-   :maxdepth: 1
-   :caption: Meta
-   :hidden:
-   :glob:
-
-   readme
diff --git a/readme.rst b/readme.rst
deleted file mode 100644
index b25e5b9..0000000
--- a/readme.rst
+++ /dev/null
@@ -1,85 +0,0 @@
-..
-   SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
-   SPDX-License-Identifier: Apache-2.0
-
-
-Documentation Guide
-===================
-
-Writing Documentation
----------------------
-
-Docs are generated using :doc:`Sphinx <sphinx:usage/index>`.
-
-Documentation is written in :doc:`reStructuredText
-<sphinx:usage/restructuredtext/basics>` - see this link for the basic format.
-
-In reStructuredText documents, to create the section hierarchy (mapped in HTML
-to ``<h1>`` through ``<h5>``) use these characters to underline headings in the
-order given: ``=``, ``-`` ``"``, ``'``, ``^``.
-
-Referencing other Documentation
--------------------------------
-
-Other Sphinx-built documentation, both ONF and non-ONF can be linked to using
-:doc:`Intersphinx <sphinx:usage/extensions/intersphinx>`.
-
-You can see all link targets available on a remote Sphinx's docs by running::
-
-  python -msphinx.ext.intersphinx http://otherdocs/objects.inv
-
-Building the Docs
-------------------
-
-The documentation build process is stored in the ``Makefile``. Building docs
-requires Python to be installed, and most steps will create a virtualenv
-(``venv_docs``) which contains the required tools.  You may also need to
-install the ``enchant`` C library using your system's package manager for the
-spelling checker to function properly.
-
-Run ``make html`` to generate html documentation in ``_build/html``.
-
-To check the formatting of documentation, run ``make lint``. This will be done
-in Jenkins to validate the documentation, so please do this before you create a
-patchset.
-
-To check spelling, run ``make spelling``. If there are additional words that
-are correctly spelled but not in the dictionary (acronyms, trademarks, etc.)
-please add them to the ``dict.txt`` file.
-
-Creating new Versions of Docs
------------------------------
-
-To change the version shown on the built site, change the contents of the
-``VERSION`` file.
-
-There is a ``make multiversion`` target which will build all versions published
-on the remote to ``_build``. This will use a fork of `sphinx-multiversion
-<https://github.com/Holzhaus/sphinx-multiversion>`_ to build multiple versions
-for the site.
-
-Adding Images and Diagrams
---------------------------
-
-There are multiple ways to add images and diagrams to the documentation.
-Generally, you should prefer using `SVG
-<https://en.wikipedia.org/wiki/Scalable_Vector_Graphics>`_ images, as these can
-be scaled to any size without quality loss.
-
-If you're creating diagrams, there are multiple tools available.
-:doc:`Graphviz <sphinx:usage/extensions/graphviz>` can render inline text-based
-graphs definitions and diagrams within the documentation, and is best for
-simple diagrams.
-
-More complex diagrams can be created in `Diagrams.net/Draw.io
-<https://www.diagrams.net/>`_ format. When saving these diagrams, use the
-SVG format, and check the "Include a copy of my diagram". This will let
-someone open the SVG later directly from the documentation and edit it, without
-any loss in functionality or quality.
-
-The last resort is to use raster images. If they're drawings or screen
-captures, use the `PNG
-<https://en.wikipedia.org/wiki/Portable_Network_Graphics>`_ format.  Consider
-compressing them with a tool like `OptiPNG <http://optipng.sourceforge.net/>`_,
-or `pngquant <https://pngquant.org/>`_.  If it's a photograph, use `JPEG
-<https://en.wikipedia.org/wiki/JPEG>`_.
diff --git a/release/1.0.rst b/release/1.0.rst
index 7342609..bf38e41 100644
--- a/release/1.0.rst
+++ b/release/1.0.rst
@@ -127,7 +127,7 @@
         * gnbsim: ``registry.aetherproject.org/omecproject/5gc-gnbsim:dev-new-gnbsim-025ae2b``
 
 SD-Core 1.0.1 Release
-=====================
+---------------------
 
 Minor release with bug fixes on top of release 1.0.0. Below is the list of defects fixed,
 
diff --git a/requirements.txt b/requirements.txt
index e81d18d..00bce7f 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,7 +1,10 @@
-Sphinx~=4.1.2
-doc8~=0.9.0
-reuse~=0.13.0
-docutils==0.16
-sphinx-rtd-theme~=0.5.2
-sphinxcontrib-spelling~=7.2.1
+# SPDX-FileCopyrightText: 2021 Open Networking Foundation <info@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+Sphinx~=4.4.0
+doc8~=0.10.1
+docutils~=0.17.1
+reuse~=0.14.0
+sphinx-rtd-theme~=1.0.0
+sphinxcontrib-spelling~=7.3.2
 sphinx-multiversion~=0.2.4
